Merge branch 'master' of git://gitorious.org/mediagoblin/mediagoblin

Conflicts:
	docs/source/siteadmin/media-types.rst
This commit is contained in:
Mike Linksvayer 2012-12-20 12:50:43 -08:00
commit 1d0148aef1
157 changed files with 13322 additions and 5674 deletions

10
AUTHORS
View File

@ -8,6 +8,7 @@ variety of different ways and this software wouldn't exist without them.
Thank you!
* Aaron Williamson
* Aeva Ntsc
* Alejandro Villanueva
* Aleksandar Micovic
* Alex Camelio
@ -17,12 +18,15 @@ Thank you!
* Chris Moylan
* Christopher Allan Webber
* Daniel Neel
* Duncan Paterson
* Deb Nicholson
* Elrond of Samba TNG
* Emily O'Leary
* Jakob Kramer
* Jef van Schendel
* Joar Wandborg
* Karen Rustad
* Kuno Woudt
* Mark Holmquist
* Matt Lee
* Nathan Yergler
@ -36,3 +40,9 @@ Thank you!
* Will Kahn-Greene
If you think your name should be on this list, let us know!
We also are currently borrowing an image in
mediagoblin/static/images/media_thumbs/image.png from the wonderful
people at http://tango.freedesktop.org/ which is in the public
domain... thanks Tango folks!

View File

@ -1,5 +1,7 @@
recursive-include mediagoblin/templates *.html *.txt
recursive-include mediagoblin/i18n *.mo
recursive-include mediagoblin/templates *.html *.txt *.xml
recursive-include mediagoblin/static *.js *.css *.png *.svg *.ico
recursive-include mediagoblin/tests *.ini
recursive-include docs *.rst *.html
include mediagoblin/config_spec.ini
graft extlib

View File

@ -68,8 +68,6 @@ Software Stack
* `WebOb <http://pythonpaste.org/webob/>`_: nice abstraction layer
from HTTP requests, responses and WSGI bits
* `Routes <http://routes.groovie.org/>`_: for URL routing
* `Beaker <http://beaker.groovie.org/>`_: for handling sessions and
caching

View File

@ -32,6 +32,11 @@ GNU/Linux distro.
install. If instead you want to join in as a contributor, see our
`Hacking HOWTO <http://wiki.mediagoblin.org/HackingHowto>`_ instead.
There are also many ways to install servers... for the sake of
simplicity, our instructions below describe installing with nginx.
For more recipes, including Apache, see
`our wiki <http://wiki.mediagoblin.org/Deployment>`_.
Prepare System
--------------
@ -165,7 +170,7 @@ And set up the in-package virtualenv::
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
your system's default Python is in the 3.x series you may need to
run ``virtualenv`` with the ``--python=python2.7`` or
``--python=python2.6`` options.
@ -173,7 +178,7 @@ 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.
your preferred method.
Assuming you are going to deploy with FastCGI, you should also install
flup::
@ -186,6 +191,12 @@ codebase, you should also run::
./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate
Note: If you are running an active site, depending on your server
configuration, you may need to stop it first or the dbupdate command
may hang (and it's certainly a good idea to restart it after the
update)
Deploy MediaGoblin Services
---------------------------

View File

@ -43,10 +43,14 @@ video media types, then the list would look like this::
media_types = mediagoblin.media_types.image, mediagoblin.media_types.video
After adding new media types to ``mediagoblin_local.ini``, you need to run::
Note that after enabling new media types, you must run dbupdate like so::
./bin/gmg dbupdate
If you are running an active site, depending on your server
configuration, you may need to stop it first (and it's certainly a
good idea to restart it after the update).
How does MediaGoblin decide which media type to use for a file?
===============================================================
@ -73,6 +77,13 @@ good/bad/ugly). On Debianoid systems::
gstreamer0.10-ffmpeg
Add ``mediagoblin.media_types.video`` to the ``media_types`` list in your
``mediagoblin_local.ini`` and restart MediaGoblin.
Run::
./bin/gmg dbupdate
Now you should be able to submit videos, and mediagoblin should
transcode them.
@ -113,8 +124,13 @@ Then install ``scikits.audiolab`` for the spectrograms::
./bin/pip install scikits.audiolab
Add ``mediagoblin.media_types.audio`` to the ``media_types`` list in your
``mediagoblin_local.ini`` and restart MediaGoblin. You should now be able to
upload and listen to audio files!
``mediagoblin_local.ini`` and restart MediaGoblin.
Run::
./bin/gmg dbupdate
You should now be able to upload and listen to audio files!
Ascii art
@ -136,4 +152,28 @@ the list would look like this::
media_types = mediagoblin.media_types.image, mediagoblin.media_types.ascii
Run::
./bin/gmg dbupdate
Now any .txt file you uploaded will be processed as ascii art!
STL / 3d model support
======================
To enable the "STL" 3d model support plugin, first make sure you have
a recentish `Blender <http://blender.org>`_ installed and available on
your execution path. This feature has been tested with Blender 2.63.
It may work on some earlier versions, but that is not guaranteed (and
is surely not to work prior to Blender 2.5X).
Add ``mediagoblin.media_types.stl`` to the ``media_types`` list in your
``mediagoblin_local.ini`` and restart MediaGoblin.
Run::
./bin/gmg dbupdate
You should now be able to upload .obj and .stl files and MediaGoblin
will be able to present them to your wide audience of admirers!

View File

@ -44,29 +44,33 @@ If the plugin is available on the `Python Package Index
pip install <plugin-name>
For example, if we wanted to install the plugin named
"mediagoblin-restrictfive", we would do::
"mediagoblin-licenses" (which allows you to customize the licenses you
offer for your media), we would do::
pip install mediagoblin-restrictfive
pip install mediagoblin-licenses
.. Note::
If you're using a virtual environment, make sure to activate the
virtual environment before installing with pip. Otherwise the
plugin may get installed in a different environment than the one
MediaGoblin is installed in.
virtual environment before installing with pip. Otherwise the plugin
may get installed in a different environment than the one MediaGoblin
is installed in. Also make sure, you use e.g. pip-2.7 if your default
python (and thus pip) is python 3 (e.g. in Ubuntu).
Once you've installed the plugin software, you need to tell
MediaGoblin that this is a plugin you want MediaGoblin to use. To do
that, you edit the ``mediagoblin.ini`` file and add the plugin as a
subsection of the plugin section.
For example, say the "mediagoblin-restrictfive" plugin had the Python
package path ``restrictfive``, then you would add ``restrictfive`` to
For example, say the "mediagoblin-licenses" plugin has the Python
package path ``mediagoblin_licenses``, then you would add ``mediagoblin_licenses`` to
the ``plugins`` section as a subsection::
[plugins]
[[restrictfive]]
[[mediagoblin_licenses]]
license_01=abbrev1, name1, http://url1
license_02=abbrev2, name1, http://url2
Configuring plugins
@ -112,7 +116,7 @@ Removing plugins
To remove a plugin, use ``pip uninstall``. For example::
pip uninstall mediagoblin-restrictfive
pip uninstall mediagoblin-licenses
.. Note::

View File

@ -19,6 +19,81 @@ This chapter has important information for releases in it.
If you're upgrading from a previous release, please read it
carefully, or at least skim over it.
0.3.2
=====
This will be the last release that is capable of converting from an earlier
MongoDB-based MediaGoblin instance to the newer SQL-based system.
**Do this to upgrade**
1. Make sure to run ``bin/gmg dbupdate`` after upgrading.
**New features**
* **3d model support!**
You can now upload STL and OBJ files and display them in
MediaGoblin. Requires a recent-ish Blender; for details see:
:ref:`deploying-chapter`
* **trim_whitespace**
We bundle the optional plugin trim_whitespace which reduces the size
of the delivered html output by reducing redundant whitespace.
See :ref:`core-plugin-section` for plugin documentation
* **A new API!**
It isn't well documented yet but we do have an API. There is an
`android application in progress <https://gitorious.org/mediagoblin/mediagoblin-android>`_
which makes use of it, and there are some demo applications between
`automgtic <https://github.com/jwandborg/automgtic>`_, an
automatic media uploader for your desktop
and `OMGMG <https://github.com/jwandborg/omgmg>`_, an example of
a web application hooking up to the API.
This is a plugin, so you have to enable it in your mediagoblin
config file by adding a section under [plugins] like::
[plugins]
[[mediagoblin.plugins.api]]
Note that the API works but is not nailed down... the way it is
called may change in future releases.
* **OAuth login support**
For applications that use OAuth to connect to the API.
This is a plugin, so you have to enable it in your mediagoblin
config file by adding a section under [plugins] like::
[plugins]
[[mediagoblin.plugins.oauth]]
* **Collections**
We now have user-curated collections support. These are arbitrary
galleries that are customizable by users. You can add media to
these by clicking on the paperclip icon when logged in and looking
at a media entry.
* **OpenStreetMap licensing display improvements**
More accurate display of OSM licensing, and less disruptive: you
click to "expand" the display of said licensing.
Geolocation is also now on by default.
* **Miscelaneous visual improvements**
We've made a number of small visual improvements including newer and
nicer looking thumbnails and improved checkbox placement.
0.3.1
=====

View File

@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@ -0,0 +1,202 @@
// Three.js r32 - http://github.com/mrdoob/three.js
var THREE=THREE||{};THREE.Color=function(a){this.autoUpdate=true;this.setHex(a)};
THREE.Color.prototype={setRGB:function(a,c,d){this.r=a;this.g=c;this.b=d;if(this.autoUpdate){this.updateHex();this.updateStyleString()}},setHex:function(a){this.hex=~~a&16777215;if(this.autoUpdate){this.updateRGBA();this.updateStyleString()}},updateHex:function(){this.hex=~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},updateRGBA:function(){this.r=(this.hex>>16&255)/255;this.g=(this.hex>>8&255)/255;this.b=(this.hex&255)/255},updateStyleString:function(){this.__styleString="rgb("+~~(this.r*255)+
","+~~(this.g*255)+","+~~(this.b*255)+")"},clone:function(){return new THREE.Color(this.hex)},toString:function(){return"THREE.Color ( r: "+this.r+", g: "+this.g+", b: "+this.b+", hex: "+this.hex+" )"}};THREE.Vector2=function(a,c){this.x=a||0;this.y=c||0};
THREE.Vector2.prototype={set:function(a,c){this.x=a;this.y=c;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},unit:function(){this.multiplyScalar(1/this.length());return this},length:function(){return Math.sqrt(this.x*
this.x+this.y*this.y)},lengthSq:function(){return this.x*this.x+this.y*this.y},negate:function(){this.x=-this.x;this.y=-this.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},toString:function(){return"THREE.Vector2 ("+this.x+", "+this.y+")"}};THREE.Vector3=function(a,c,d){this.x=a||0;this.y=c||0;this.z=d||0};
THREE.Vector3.prototype={set:function(a,c,d){this.x=a;this.y=c;this.z=d;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},
cross:function(a,c){this.x=a.y*c.z-a.z*c.y;this.y=a.z*c.x-a.x*c.z;this.z=a.x*c.y-a.y*c.x;return this},crossSelf:function(a){var c=this.x,d=this.y,e=this.z;this.x=d*a.z-e*a.y;this.y=e*a.x-c*a.z;this.z=c*a.y-d*a.x;return this},multiply:function(a,c){this.x=a.x*c.x;this.y=a.y*c.y;this.z=a.z*c.z;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideSelf:function(a){this.x/=a.x;this.y/=a.y;this.z/=
a.z;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},distanceTo:function(a){var c=this.x-a.x,d=this.y-a.y;a=this.z-a.z;return Math.sqrt(c*c+d*d+a*a)},distanceToSquared:function(a){var c=this.x-a.x,d=this.y-a.y;a=this.z-a.z;return c*c+d*d+a*a},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},negate:function(){this.x=
-this.x;this.y=-this.y;this.z=-this.z;return this},normalize:function(){var a=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z);a>0?this.multiplyScalar(1/a):this.set(0,0,0);return this},setLength:function(a){return this.normalize().multiplyScalar(a)},isZero:function(){return Math.abs(this.x)<1.0E-4&&Math.abs(this.y)<1.0E-4&&Math.abs(this.z)<1.0E-4},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},toString:function(){return"THREE.Vector3 ( "+this.x+", "+this.y+", "+this.z+" )"}};
THREE.Vector4=function(a,c,d,e){this.x=a||0;this.y=c||0;this.z=d||0;this.w=e||1};
THREE.Vector4.prototype={set:function(a,c,d,e){this.x=a;this.y=c;this.z=d;this.w=e;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w||1;return this},add:function(a,c){this.x=a.x+c.x;this.y=a.y+c.y;this.z=a.z+c.z;this.w=a.w+c.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,c){this.x=a.x-c.x;this.y=a.y-c.y;this.z=a.z-c.z;this.w=a.w-c.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;
return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){this.x/=a;this.y/=a;this.z/=a;this.w/=a;return this},lerpSelf:function(a,c){this.x+=(a.x-this.x)*c;this.y+=(a.y-this.y)*c;this.z+=(a.z-this.z)*c;this.w+=(a.w-this.w)*c},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},toString:function(){return"THREE.Vector4 ("+this.x+", "+this.y+", "+this.z+", "+this.w+")"}};
THREE.Ray=function(a,c){this.origin=a||new THREE.Vector3;this.direction=c||new THREE.Vector3};
THREE.Ray.prototype={intersectScene:function(a){var c,d,e=a.objects,g=[];a=0;for(c=e.length;a<c;a++){d=e[a];if(d instanceof THREE.Mesh)g=g.concat(this.intersectObject(d))}g.sort(function(h,o){return h.distance-o.distance});return g},intersectObject:function(a){function c(K,p,U,F){F=F.clone().subSelf(p);U=U.clone().subSelf(p);var f=K.clone().subSelf(p);K=F.dot(F);p=F.dot(U);F=F.dot(f);var j=U.dot(U);U=U.dot(f);f=1/(K*j-p*p);j=(j*F-p*U)*f;K=(K*U-p*F)*f;return j>0&&K>0&&j+K<1}var d,e,g,h,o,b,i,k,y,z,
u,x=a.geometry,H=x.vertices,J=[];d=0;for(e=x.faces.length;d<e;d++){g=x.faces[d];z=this.origin.clone();u=this.direction.clone();h=a.matrix.multiplyVector3(H[g.a].position.clone());o=a.matrix.multiplyVector3(H[g.b].position.clone());b=a.matrix.multiplyVector3(H[g.c].position.clone());i=g instanceof THREE.Face4?a.matrix.multiplyVector3(H[g.d].position.clone()):null;k=a.rotationMatrix.multiplyVector3(g.normal.clone());y=u.dot(k);if(y<0){k=k.dot((new THREE.Vector3).sub(h,z))/y;z=z.addSelf(u.multiplyScalar(k));
if(g instanceof THREE.Face3){if(c(z,h,o,b)){g={distance:this.origin.distanceTo(z),point:z,face:g,object:a};J.push(g)}}else if(g instanceof THREE.Face4)if(c(z,h,o,i)||c(z,o,b,i)){g={distance:this.origin.distanceTo(z),point:z,face:g,object:a};J.push(g)}}}return J}};
THREE.Rectangle=function(){function a(){h=e-c;o=g-d}var c,d,e,g,h,o,b=true;this.getX=function(){return c};this.getY=function(){return d};this.getWidth=function(){return h};this.getHeight=function(){return o};this.getLeft=function(){return c};this.getTop=function(){return d};this.getRight=function(){return e};this.getBottom=function(){return g};this.set=function(i,k,y,z){b=false;c=i;d=k;e=y;g=z;a()};this.addPoint=function(i,k){if(b){b=false;c=i;d=k;e=i;g=k}else{c=c<i?c:i;d=d<k?d:k;e=e>i?e:i;g=g>k?
g:k}a()};this.add3Points=function(i,k,y,z,u,x){if(b){b=false;c=i<y?i<u?i:u:y<u?y:u;d=k<z?k<x?k:x:z<x?z:x;e=i>y?i>u?i:u:y>u?y:u;g=k>z?k>x?k:x:z>x?z:x}else{c=i<y?i<u?i<c?i:c:u<c?u:c:y<u?y<c?y:c:u<c?u:c;d=k<z?k<x?k<d?k:d:x<d?x:d:z<x?z<d?z:d:x<d?x:d;e=i>y?i>u?i>e?i:e:u>e?u:e:y>u?y>e?y:e:u>e?u:e;g=k>z?k>x?k>g?k:g:x>g?x:g:z>x?z>g?z:g:x>g?x:g}a()};this.addRectangle=function(i){if(b){b=false;c=i.getLeft();d=i.getTop();e=i.getRight();g=i.getBottom()}else{c=c<i.getLeft()?c:i.getLeft();d=d<i.getTop()?d:i.getTop();
e=e>i.getRight()?e:i.getRight();g=g>i.getBottom()?g:i.getBottom()}a()};this.inflate=function(i){c-=i;d-=i;e+=i;g+=i;a()};this.minSelf=function(i){c=c>i.getLeft()?c:i.getLeft();d=d>i.getTop()?d:i.getTop();e=e<i.getRight()?e:i.getRight();g=g<i.getBottom()?g:i.getBottom();a()};this.instersects=function(i){return Math.min(e,i.getRight())-Math.max(c,i.getLeft())>=0&&Math.min(g,i.getBottom())-Math.max(d,i.getTop())>=0};this.empty=function(){b=true;g=e=d=c=0;a()};this.isEmpty=function(){return b};this.toString=
function(){return"THREE.Rectangle ( left: "+c+", right: "+e+", top: "+d+", bottom: "+g+", width: "+h+", height: "+o+" )"}};THREE.Matrix3=function(){this.m=[]};THREE.Matrix3.prototype={transpose:function(){var a,c=this.m;a=c[1];c[1]=c[3];c[3]=a;a=c[2];c[2]=c[6];c[6]=a;a=c[5];c[5]=c[7];c[7]=a;return this}};
THREE.Matrix4=function(a,c,d,e,g,h,o,b,i,k,y,z,u,x,H,J){this.n11=a||1;this.n12=c||0;this.n13=d||0;this.n14=e||0;this.n21=g||0;this.n22=h||1;this.n23=o||0;this.n24=b||0;this.n31=i||0;this.n32=k||0;this.n33=y||1;this.n34=z||0;this.n41=u||0;this.n42=x||0;this.n43=H||0;this.n44=J||1;this.flat=Array(16);this.m33=new THREE.Matrix3};
THREE.Matrix4.prototype={identity:function(){this.n11=1;this.n21=this.n14=this.n13=this.n12=0;this.n22=1;this.n32=this.n31=this.n24=this.n23=0;this.n33=1;this.n43=this.n42=this.n41=this.n34=0;this.n44=1;return this},set:function(a,c,d,e,g,h,o,b,i,k,y,z,u,x,H,J){this.n11=a;this.n12=c;this.n13=d;this.n14=e;this.n21=g;this.n22=h;this.n23=o;this.n24=b;this.n31=i;this.n32=k;this.n33=y;this.n34=z;this.n41=u;this.n42=x;this.n43=H;this.n44=J;return this},copy:function(a){this.n11=a.n11;this.n12=a.n12;this.n13=
a.n13;this.n14=a.n14;this.n21=a.n21;this.n22=a.n22;this.n23=a.n23;this.n24=a.n24;this.n31=a.n31;this.n32=a.n32;this.n33=a.n33;this.n34=a.n34;this.n41=a.n41;this.n42=a.n42;this.n43=a.n43;this.n44=a.n44;return this},lookAt:function(a,c,d){var e=THREE.Matrix4.__tmpVec1,g=THREE.Matrix4.__tmpVec2,h=THREE.Matrix4.__tmpVec3;h.sub(a,c).normalize();e.cross(d,h).normalize();g.cross(h,e).normalize();this.n11=e.x;this.n12=e.y;this.n13=e.z;this.n14=-e.dot(a);this.n21=g.x;this.n22=g.y;this.n23=g.z;this.n24=-g.dot(a);
this.n31=h.x;this.n32=h.y;this.n33=h.z;this.n34=-h.dot(a);this.n43=this.n42=this.n41=0;this.n44=1;return this},multiplyVector3:function(a){var c=a.x,d=a.y,e=a.z,g=1/(this.n41*c+this.n42*d+this.n43*e+this.n44);a.x=(this.n11*c+this.n12*d+this.n13*e+this.n14)*g;a.y=(this.n21*c+this.n22*d+this.n23*e+this.n24)*g;a.z=(this.n31*c+this.n32*d+this.n33*e+this.n34)*g;return a},multiplyVector4:function(a){var c=a.x,d=a.y,e=a.z,g=a.w;a.x=this.n11*c+this.n12*d+this.n13*e+this.n14*g;a.y=this.n21*c+this.n22*d+this.n23*
e+this.n24*g;a.z=this.n31*c+this.n32*d+this.n33*e+this.n34*g;a.w=this.n41*c+this.n42*d+this.n43*e+this.n44*g;return a},crossVector:function(a){var c=new THREE.Vector4;c.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;c.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;c.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+this.n34*a.w;c.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return c},multiply:function(a,c){var d=a.n11,e=a.n12,g=a.n13,h=a.n14,o=a.n21,b=a.n22,i=a.n23,k=a.n24,y=a.n31,
z=a.n32,u=a.n33,x=a.n34,H=a.n41,J=a.n42,K=a.n43,p=a.n44,U=c.n11,F=c.n12,f=c.n13,j=c.n14,q=c.n21,l=c.n22,r=c.n23,C=c.n24,m=c.n31,t=c.n32,v=c.n33,s=c.n34,n=c.n41,E=c.n42,A=c.n43,O=c.n44;this.n11=d*U+e*q+g*m+h*n;this.n12=d*F+e*l+g*t+h*E;this.n13=d*f+e*r+g*v+h*A;this.n14=d*j+e*C+g*s+h*O;this.n21=o*U+b*q+i*m+k*n;this.n22=o*F+b*l+i*t+k*E;this.n23=o*f+b*r+i*v+k*A;this.n24=o*j+b*C+i*s+k*O;this.n31=y*U+z*q+u*m+x*n;this.n32=y*F+z*l+u*t+x*E;this.n33=y*f+z*r+u*v+x*A;this.n34=y*j+z*C+u*s+x*O;this.n41=H*U+J*q+
K*m+p*n;this.n42=H*F+J*l+K*t+p*E;this.n43=H*f+J*r+K*v+p*A;this.n44=H*j+J*C+K*s+p*O;return this},multiplySelf:function(a){var c=this.n11,d=this.n12,e=this.n13,g=this.n14,h=this.n21,o=this.n22,b=this.n23,i=this.n24,k=this.n31,y=this.n32,z=this.n33,u=this.n34,x=this.n41,H=this.n42,J=this.n43,K=this.n44,p=a.n11,U=a.n21,F=a.n31,f=a.n41,j=a.n12,q=a.n22,l=a.n32,r=a.n42,C=a.n13,m=a.n23,t=a.n33,v=a.n43,s=a.n14,n=a.n24,E=a.n34;a=a.n44;this.n11=c*p+d*U+e*F+g*f;this.n12=c*j+d*q+e*l+g*r;this.n13=c*C+d*m+e*t+g*
v;this.n14=c*s+d*n+e*E+g*a;this.n21=h*p+o*U+b*F+i*f;this.n22=h*j+o*q+b*l+i*r;this.n23=h*C+o*m+b*t+i*v;this.n24=h*s+o*n+b*E+i*a;this.n31=k*p+y*U+z*F+u*f;this.n32=k*j+y*q+z*l+u*r;this.n33=k*C+y*m+z*t+u*v;this.n34=k*s+y*n+z*E+u*a;this.n41=x*p+H*U+J*F+K*f;this.n42=x*j+H*q+J*l+K*r;this.n43=x*C+H*m+J*t+K*v;this.n44=x*s+H*n+J*E+K*a;return this},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=
a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a;return this},determinant:function(){var a=this.n11,c=this.n12,d=this.n13,e=this.n14,g=this.n21,h=this.n22,o=this.n23,b=this.n24,i=this.n31,k=this.n32,y=this.n33,z=this.n34,u=this.n41,x=this.n42,H=this.n43,J=this.n44;return e*o*k*u-d*b*k*u-e*h*y*u+c*b*y*u+d*h*z*u-c*o*z*u-e*o*i*x+d*b*i*x+e*g*y*x-a*b*y*x-d*g*z*x+a*o*z*x+e*h*i*H-c*b*i*H-e*g*k*H+a*b*k*H+c*g*z*H-a*h*z*H-d*h*i*J+c*o*i*J+d*g*k*J-a*o*k*J-c*g*y*J+a*h*y*J},transpose:function(){function a(c,d,
e){var g=c[d];c[d]=c[e];c[e]=g}a(this,"n21","n12");a(this,"n31","n13");a(this,"n32","n23");a(this,"n41","n14");a(this,"n42","n24");a(this,"n43","n34");return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;a.n43=this.n43;a.n44=this.n44;return a},flatten:function(){var a=this.flat;a[0]=this.n11;
a[1]=this.n21;a[2]=this.n31;a[3]=this.n41;a[4]=this.n12;a[5]=this.n22;a[6]=this.n32;a[7]=this.n42;a[8]=this.n13;a[9]=this.n23;a[10]=this.n33;a[11]=this.n43;a[12]=this.n14;a[13]=this.n24;a[14]=this.n34;a[15]=this.n44;return a},setTranslation:function(a,c,d){this.set(1,0,0,a,0,1,0,c,0,0,1,d,0,0,0,1);return this},setScale:function(a,c,d){this.set(a,0,0,0,0,c,0,0,0,0,d,0,0,0,0,1);return this},setRotX:function(a){var c=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,c,-a,0,0,a,c,0,0,0,0,1);return this},setRotY:function(a){var c=
Math.cos(a);a=Math.sin(a);this.set(c,0,a,0,0,1,0,0,-a,0,c,0,0,0,0,1);return this},setRotZ:function(a){var c=Math.cos(a);a=Math.sin(a);this.set(c,-a,0,0,a,c,0,0,0,0,1,0,0,0,0,1);return this},setRotAxis:function(a,c){var d=Math.cos(c),e=Math.sin(c),g=1-d,h=a.x,o=a.y,b=a.z,i=g*h,k=g*o;this.set(i*h+d,i*o-e*b,i*b+e*o,0,i*o+e*b,k*o+d,k*b-e*h,0,i*b-e*o,k*b+e*h,g*b*b+d,0,0,0,0,1);return this},toString:function(){return"| "+this.n11+" "+this.n12+" "+this.n13+" "+this.n14+" |\n| "+this.n21+" "+this.n22+" "+
this.n23+" "+this.n24+" |\n| "+this.n31+" "+this.n32+" "+this.n33+" "+this.n34+" |\n| "+this.n41+" "+this.n42+" "+this.n43+" "+this.n44+" |"}};THREE.Matrix4.translationMatrix=function(a,c,d){var e=new THREE.Matrix4;e.setTranslation(a,c,d);return e};THREE.Matrix4.scaleMatrix=function(a,c,d){var e=new THREE.Matrix4;e.setScale(a,c,d);return e};THREE.Matrix4.rotationXMatrix=function(a){var c=new THREE.Matrix4;c.setRotX(a);return c};
THREE.Matrix4.rotationYMatrix=function(a){var c=new THREE.Matrix4;c.setRotY(a);return c};THREE.Matrix4.rotationZMatrix=function(a){var c=new THREE.Matrix4;c.setRotZ(a);return c};THREE.Matrix4.rotationAxisAngleMatrix=function(a,c){var d=new THREE.Matrix4;d.setRotAxis(a,c);return d};
THREE.Matrix4.makeInvert=function(a){var c=a.n11,d=a.n12,e=a.n13,g=a.n14,h=a.n21,o=a.n22,b=a.n23,i=a.n24,k=a.n31,y=a.n32,z=a.n33,u=a.n34,x=a.n41,H=a.n42,J=a.n43,K=a.n44,p=new THREE.Matrix4;p.n11=b*u*H-i*z*H+i*y*J-o*u*J-b*y*K+o*z*K;p.n12=g*z*H-e*u*H-g*y*J+d*u*J+e*y*K-d*z*K;p.n13=e*i*H-g*b*H+g*o*J-d*i*J-e*o*K+d*b*K;p.n14=g*b*y-e*i*y-g*o*z+d*i*z+e*o*u-d*b*u;p.n21=i*z*x-b*u*x-i*k*J+h*u*J+b*k*K-h*z*K;p.n22=e*u*x-g*z*x+g*k*J-c*u*J-e*k*K+c*z*K;p.n23=g*b*x-e*i*x-g*h*J+c*i*J+e*h*K-c*b*K;p.n24=e*i*k-g*b*k+
g*h*z-c*i*z-e*h*u+c*b*u;p.n31=o*u*x-i*y*x+i*k*H-h*u*H-o*k*K+h*y*K;p.n32=g*y*x-d*u*x-g*k*H+c*u*H+d*k*K-c*y*K;p.n33=e*i*x-g*o*x+g*h*H-c*i*H-d*h*K+c*o*K;p.n34=g*o*k-d*i*k-g*h*y+c*i*y+d*h*u-c*o*u;p.n41=b*y*x-o*z*x-b*k*H+h*z*H+o*k*J-h*y*J;p.n42=d*z*x-e*y*x+e*k*H-c*z*H-d*k*J+c*y*J;p.n43=e*o*x-d*b*x-e*h*H+c*b*H+d*h*J-c*o*J;p.n44=d*b*k-e*o*k+e*h*y-c*b*y-d*h*z+c*o*z;p.multiplyScalar(1/a.determinant());return p};
THREE.Matrix4.makeInvert3x3=function(a){var c=a.flatten();a=a.m33;var d=a.m,e=c[10]*c[5]-c[6]*c[9],g=-c[10]*c[1]+c[2]*c[9],h=c[6]*c[1]-c[2]*c[5],o=-c[10]*c[4]+c[6]*c[8],b=c[10]*c[0]-c[2]*c[8],i=-c[6]*c[0]+c[2]*c[4],k=c[9]*c[4]-c[5]*c[8],y=-c[9]*c[0]+c[1]*c[8],z=c[5]*c[0]-c[1]*c[4];c=c[0]*e+c[1]*o+c[2]*k;if(c==0)throw"matrix not invertible";c=1/c;d[0]=c*e;d[1]=c*g;d[2]=c*h;d[3]=c*o;d[4]=c*b;d[5]=c*i;d[6]=c*k;d[7]=c*y;d[8]=c*z;return a};
THREE.Matrix4.makeFrustum=function(a,c,d,e,g,h){var o,b,i;o=new THREE.Matrix4;b=2*g/(c-a);i=2*g/(e-d);a=(c+a)/(c-a);d=(e+d)/(e-d);e=-(h+g)/(h-g);g=-2*h*g/(h-g);o.n11=b;o.n12=0;o.n13=a;o.n14=0;o.n21=0;o.n22=i;o.n23=d;o.n24=0;o.n31=0;o.n32=0;o.n33=e;o.n34=g;o.n41=0;o.n42=0;o.n43=-1;o.n44=0;return o};THREE.Matrix4.makePerspective=function(a,c,d,e){var g;a=d*Math.tan(a*Math.PI/360);g=-a;return THREE.Matrix4.makeFrustum(g*c,a*c,g,a,d,e)};
THREE.Matrix4.makeOrtho=function(a,c,d,e,g,h){var o,b,i,k;o=new THREE.Matrix4;b=c-a;i=d-e;k=h-g;a=(c+a)/b;d=(d+e)/i;g=(h+g)/k;o.n11=2/b;o.n12=0;o.n13=0;o.n14=-a;o.n21=0;o.n22=2/i;o.n23=0;o.n24=-d;o.n31=0;o.n32=0;o.n33=-2/k;o.n34=-g;o.n41=0;o.n42=0;o.n43=0;o.n44=1;return o};THREE.Matrix4.__tmpVec1=new THREE.Vector3;THREE.Matrix4.__tmpVec2=new THREE.Vector3;THREE.Matrix4.__tmpVec3=new THREE.Vector3;
THREE.Vertex=function(a,c){this.position=a||new THREE.Vector3;this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.normal=c||new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.normalScreen=new THREE.Vector3;this.tangent=new THREE.Vector4;this.__visible=true};THREE.Vertex.prototype={toString:function(){return"THREE.Vertex ( position: "+this.position+", normal: "+this.normal+" )"}};
THREE.Face3=function(a,c,d,e,g){this.a=a;this.b=c;this.c=d;this.centroid=new THREE.Vector3;this.normal=e instanceof THREE.Vector3?e:new THREE.Vector3;this.vertexNormals=e instanceof Array?e:[];this.materials=g instanceof Array?g:[g]};THREE.Face3.prototype={toString:function(){return"THREE.Face3 ( "+this.a+", "+this.b+", "+this.c+" )"}};
THREE.Face4=function(a,c,d,e,g,h){this.a=a;this.b=c;this.c=d;this.d=e;this.centroid=new THREE.Vector3;this.normal=g instanceof THREE.Vector3?g:new THREE.Vector3;this.vertexNormals=g instanceof Array?g:[];this.materials=h instanceof Array?h:[h]};THREE.Face4.prototype={toString:function(){return"THREE.Face4 ( "+this.a+", "+this.b+", "+this.c+" "+this.d+" )"}};THREE.UV=function(a,c){this.u=a||0;this.v=c||0};
THREE.UV.prototype={copy:function(a){this.u=a.u;this.v=a.v},toString:function(){return"THREE.UV ("+this.u+", "+this.v+")"}};THREE.Geometry=function(){this.vertices=[];this.faces=[];this.uvs=[];this.boundingSphere=this.boundingBox=null;this.geometryChunks={};this.hasTangents=false};
THREE.Geometry.prototype={computeCentroids:function(){var a,c,d;a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];d.centroid.set(0,0,0);if(d instanceof THREE.Face3){d.centroid.addSelf(this.vertices[d.a].position);d.centroid.addSelf(this.vertices[d.b].position);d.centroid.addSelf(this.vertices[d.c].position);d.centroid.divideScalar(3)}else if(d instanceof THREE.Face4){d.centroid.addSelf(this.vertices[d.a].position);d.centroid.addSelf(this.vertices[d.b].position);d.centroid.addSelf(this.vertices[d.c].position);
d.centroid.addSelf(this.vertices[d.d].position);d.centroid.divideScalar(4)}}},computeFaceNormals:function(a){var c,d,e,g,h,o,b=new THREE.Vector3,i=new THREE.Vector3;e=0;for(g=this.vertices.length;e<g;e++){h=this.vertices[e];h.normal.set(0,0,0)}e=0;for(g=this.faces.length;e<g;e++){h=this.faces[e];if(a&&h.vertexNormals.length){b.set(0,0,0);c=0;for(d=h.normal.length;c<d;c++)b.addSelf(h.vertexNormals[c]);b.divideScalar(3)}else{c=this.vertices[h.a];d=this.vertices[h.b];o=this.vertices[h.c];b.sub(o.position,
d.position);i.sub(c.position,d.position);b.crossSelf(i)}b.isZero()||b.normalize();h.normal.copy(b)}},computeVertexNormals:function(){var a,c,d,e;if(this.__tmpVertices==undefined){e=this.__tmpVertices=Array(this.vertices.length);a=0;for(c=this.vertices.length;a<c;a++)e[a]=new THREE.Vector3;a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];if(d instanceof THREE.Face3)d.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];else if(d instanceof THREE.Face4)d.vertexNormals=[new THREE.Vector3,
new THREE.Vector3,new THREE.Vector3,new THREE.Vector3]}}else{e=this.__tmpVertices;a=0;for(c=this.vertices.length;a<c;a++)e[a].set(0,0,0)}a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];if(d instanceof THREE.Face3){e[d.a].addSelf(d.normal);e[d.b].addSelf(d.normal);e[d.c].addSelf(d.normal)}else if(d instanceof THREE.Face4){e[d.a].addSelf(d.normal);e[d.b].addSelf(d.normal);e[d.c].addSelf(d.normal);e[d.d].addSelf(d.normal)}}a=0;for(c=this.vertices.length;a<c;a++)e[a].normalize();a=0;for(c=this.faces.length;a<
c;a++){d=this.faces[a];if(d instanceof THREE.Face3){d.vertexNormals[0].copy(e[d.a]);d.vertexNormals[1].copy(e[d.b]);d.vertexNormals[2].copy(e[d.c])}else if(d instanceof THREE.Face4){d.vertexNormals[0].copy(e[d.a]);d.vertexNormals[1].copy(e[d.b]);d.vertexNormals[2].copy(e[d.c]);d.vertexNormals[3].copy(e[d.d])}}},computeTangents:function(){function a(s,n,E,A,O,N,G){h=s.vertices[n].position;o=s.vertices[E].position;b=s.vertices[A].position;i=g[O];k=g[N];y=g[G];z=o.x-h.x;u=b.x-h.x;x=o.y-h.y;H=b.y-h.y;
J=o.z-h.z;K=b.z-h.z;p=k.u-i.u;U=y.u-i.u;F=k.v-i.v;f=y.v-i.v;j=1/(p*f-U*F);r.set((f*z-F*u)*j,(f*x-F*H)*j,(f*J-F*K)*j);C.set((p*u-U*z)*j,(p*H-U*x)*j,(p*K-U*J)*j);q[n].addSelf(r);q[E].addSelf(r);q[A].addSelf(r);l[n].addSelf(C);l[E].addSelf(C);l[A].addSelf(C)}var c,d,e,g,h,o,b,i,k,y,z,u,x,H,J,K,p,U,F,f,j,q=[],l=[],r=new THREE.Vector3,C=new THREE.Vector3,m=new THREE.Vector3,t=new THREE.Vector3,v=new THREE.Vector3;c=0;for(d=this.vertices.length;c<d;c++){q[c]=new THREE.Vector3;l[c]=new THREE.Vector3}c=0;
for(d=this.faces.length;c<d;c++){e=this.faces[c];g=this.uvs[c];if(e instanceof THREE.Face3){a(this,e.a,e.b,e.c,0,1,2);this.vertices[e.a].normal.copy(e.vertexNormals[0]);this.vertices[e.b].normal.copy(e.vertexNormals[1]);this.vertices[e.c].normal.copy(e.vertexNormals[2])}else if(e instanceof THREE.Face4){a(this,e.a,e.b,e.c,0,1,2);a(this,e.a,e.b,e.d,0,1,3);this.vertices[e.a].normal.copy(e.vertexNormals[0]);this.vertices[e.b].normal.copy(e.vertexNormals[1]);this.vertices[e.c].normal.copy(e.vertexNormals[2]);
this.vertices[e.d].normal.copy(e.vertexNormals[3])}}c=0;for(d=this.vertices.length;c<d;c++){v.copy(this.vertices[c].normal);e=q[c];m.copy(e);m.subSelf(v.multiplyScalar(v.dot(e))).normalize();t.cross(this.vertices[c].normal,e);e=t.dot(l[c]);e=e<0?-1:1;this.vertices[c].tangent.set(m.x,m.y,m.z,e)}this.hasTangents=true},computeBoundingBox:function(){var a;if(this.vertices.length>0){this.boundingBox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y,this.vertices[0].position.y],
z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var c=1,d=this.vertices.length;c<d;c++){a=this.vertices[c];if(a.position.x<this.boundingBox.x[0])this.boundingBox.x[0]=a.position.x;else if(a.position.x>this.boundingBox.x[1])this.boundingBox.x[1]=a.position.x;if(a.position.y<this.boundingBox.y[0])this.boundingBox.y[0]=a.position.y;else if(a.position.y>this.boundingBox.y[1])this.boundingBox.y[1]=a.position.y;if(a.position.z<this.boundingBox.z[0])this.boundingBox.z[0]=a.position.z;else if(a.position.z>
this.boundingBox.z[1])this.boundingBox.z[1]=a.position.z}}},computeBoundingSphere:function(){for(var a=this.boundingSphere===null?0:this.boundingSphere.radius,c=0,d=this.vertices.length;c<d;c++)a=Math.max(a,this.vertices[c].position.length());this.boundingSphere={radius:a}},sortFacesByMaterial:function(){function a(y){var z=[];c=0;for(d=y.length;c<d;c++)y[c]==undefined?z.push("undefined"):z.push(y[c].toString());return z.join("_")}var c,d,e,g,h,o,b,i,k={};e=0;for(g=this.faces.length;e<g;e++){h=this.faces[e];
o=h.materials;b=a(o);if(k[b]==undefined)k[b]={hash:b,counter:0};i=k[b].hash+"_"+k[b].counter;if(this.geometryChunks[i]==undefined)this.geometryChunks[i]={faces:[],materials:o,vertices:0};h=h instanceof THREE.Face3?3:4;if(this.geometryChunks[i].vertices+h>65535){k[b].counter+=1;i=k[b].hash+"_"+k[b].counter;if(this.geometryChunks[i]==undefined)this.geometryChunks[i]={faces:[],materials:o,vertices:0}}this.geometryChunks[i].faces.push(e);this.geometryChunks[i].vertices+=h}},toString:function(){return"THREE.Geometry ( vertices: "+
this.vertices+", faces: "+this.faces+", uvs: "+this.uvs+" )"}};
THREE.Camera=function(a,c,d,e){this.fov=a;this.aspect=c;this.near=d;this.far=e;this.position=new THREE.Vector3;this.target={position:new THREE.Vector3};this.autoUpdateMatrix=true;this.projectionMatrix=null;this.matrix=new THREE.Matrix4;this.up=new THREE.Vector3(0,1,0);this.tmpVec=new THREE.Vector3;this.translateX=function(g){this.tmpVec.sub(this.target.position,this.position).normalize().multiplyScalar(g);this.tmpVec.crossSelf(this.up);this.position.addSelf(this.tmpVec);this.target.position.addSelf(this.tmpVec)};
this.translateZ=function(g){this.tmpVec.sub(this.target.position,this.position).normalize().multiplyScalar(g);this.position.subSelf(this.tmpVec);this.target.position.subSelf(this.tmpVec)};this.updateMatrix=function(){this.matrix.lookAt(this.position,this.target.position,this.up)};this.updateProjectionMatrix=function(){this.projectionMatrix=THREE.Matrix4.makePerspective(this.fov,this.aspect,this.near,this.far)};this.updateProjectionMatrix()};
THREE.Camera.prototype={toString:function(){return"THREE.Camera ( "+this.position+", "+this.target.position+" )"}};THREE.Light=function(a){this.color=new THREE.Color(a)};THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;THREE.DirectionalLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.intensity=c||1};THREE.DirectionalLight.prototype=new THREE.Light;
THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight;THREE.PointLight=function(a,c){THREE.Light.call(this,a);this.position=new THREE.Vector3;this.intensity=c||1};THREE.PointLight.prototype=new THREE.Light;THREE.PointLight.prototype.constructor=THREE.PointLight;
THREE.Object3D=function(){this.id=THREE.Object3DCounter.value++;this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.scale=new THREE.Vector3(1,1,1);this.matrix=new THREE.Matrix4;this.rotationMatrix=new THREE.Matrix4;this.tmpMatrix=new THREE.Matrix4;this.screen=new THREE.Vector3;this.visible=this.autoUpdateMatrix=true};
THREE.Object3D.prototype={updateMatrix:function(){var a=this.position,c=this.rotation,d=this.scale,e=this.tmpMatrix;this.matrix.setTranslation(a.x,a.y,a.z);this.rotationMatrix.setRotX(c.x);if(c.y!=0){e.setRotY(c.y);this.rotationMatrix.multiplySelf(e)}if(c.z!=0){e.setRotZ(c.z);this.rotationMatrix.multiplySelf(e)}this.matrix.multiplySelf(this.rotationMatrix);if(d.x!=0||d.y!=0||d.z!=0){e.setScale(d.x,d.y,d.z);this.matrix.multiplySelf(e)}}};THREE.Object3DCounter={value:0};
THREE.Particle=function(a){THREE.Object3D.call(this);this.materials=a instanceof Array?a:[a];this.autoUpdateMatrix=false};THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;THREE.ParticleSystem=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.materials=c instanceof Array?c:[c];this.autoUpdateMatrix=false};THREE.ParticleSystem.prototype=new THREE.Object3D;THREE.ParticleSystem.prototype.constructor=THREE.ParticleSystem;
THREE.Line=function(a,c,d){THREE.Object3D.call(this);this.geometry=a;this.materials=c instanceof Array?c:[c];this.type=d!=undefined?d:THREE.LineStrip};THREE.LineStrip=0;THREE.LinePieces=1;THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line;THREE.Mesh=function(a,c){THREE.Object3D.call(this);this.geometry=a;this.materials=c instanceof Array?c:[c];this.overdraw=this.doubleSided=this.flipSided=false;this.geometry.boundingSphere||this.geometry.computeBoundingSphere()};
THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.FlatShading=0;THREE.SmoothShading=1;THREE.NormalBlending=0;THREE.AdditiveBlending=1;THREE.SubtractiveBlending=2;
THREE.LineBasicMaterial=function(a){this.color=new THREE.Color(16777215);this.opacity=1;this.blending=THREE.NormalBlending;this.linewidth=1;this.linejoin=this.linecap="round";if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending;if(a.linewidth!==undefined)this.linewidth=a.linewidth;if(a.linecap!==undefined)this.linecap=a.linecap;if(a.linejoin!==undefined)this.linejoin=a.linejoin}};
THREE.LineBasicMaterial.prototype={toString:function(){return"THREE.LineBasicMaterial (<br/>color: "+this.color+"<br/>opacity: "+this.opacity+"<br/>blending: "+this.blending+"<br/>linewidth: "+this.linewidth+"<br/>linecap: "+this.linecap+"<br/>linejoin: "+this.linejoin+"<br/>)"}};
THREE.MeshBasicMaterial=function(a){this.id=THREE.MeshBasicMaterialCounter.value++;this.color=new THREE.Color(16777215);this.env_map=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refraction_ratio=0.98;this.fog=true;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;this.wireframe_linejoin=this.wireframe_linecap="round";if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=
a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.fog!==undefined)this.fog=a.fog;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==
undefined)this.wireframe_linewidth=a.wireframe_linewidth;if(a.wireframe_linecap!==undefined)this.wireframe_linecap=a.wireframe_linecap;if(a.wireframe_linejoin!==undefined)this.wireframe_linejoin=a.wireframe_linejoin}};
THREE.MeshBasicMaterial.prototype={toString:function(){return"THREE.MeshBasicMaterial (<br/>id: "+this.id+"<br/>color: "+this.color+"<br/>map: "+this.map+"<br/>env_map: "+this.env_map+"<br/>combine: "+this.combine+"<br/>reflectivity: "+this.reflectivity+"<br/>refraction_ratio: "+this.refraction_ratio+"<br/>opacity: "+this.opacity+"<br/>blending: "+this.blending+"<br/>wireframe: "+this.wireframe+"<br/>wireframe_linewidth: "+this.wireframe_linewidth+"<br/>wireframe_linecap: "+this.wireframe_linecap+
"<br/>wireframe_linejoin: "+this.wireframe_linejoin+"<br/>)"}};THREE.MeshBasicMaterialCounter={value:0};
THREE.MeshLambertMaterial=function(a){this.id=THREE.MeshLambertMaterialCounter.value++;this.color=new THREE.Color(16777215);this.env_map=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refraction_ratio=0.98;this.fog=true;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;this.wireframe_linejoin=this.wireframe_linecap="round";if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=
a.map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.fog!==undefined)this.fog=a.fog;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==
undefined)this.wireframe_linewidth=a.wireframe_linewidth;if(a.wireframe_linecap!==undefined)this.wireframe_linecap=a.wireframe_linecap;if(a.wireframe_linejoin!==undefined)this.wireframe_linejoin=a.wireframe_linejoin}};
THREE.MeshLambertMaterial.prototype={toString:function(){return"THREE.MeshLambertMaterial (<br/>id: "+this.id+"<br/>color: "+this.color+"<br/>map: "+this.map+"<br/>env_map: "+this.env_map+"<br/>combine: "+this.combine+"<br/>reflectivity: "+this.reflectivity+"<br/>refraction_ratio: "+this.refraction_ratio+"<br/>opacity: "+this.opacity+"<br/>shading: "+this.shading+"<br/>blending: "+this.blending+"<br/>wireframe: "+this.wireframe+"<br/>wireframe_linewidth: "+this.wireframe_linewidth+"<br/>wireframe_linecap: "+
this.wireframe_linecap+"<br/>wireframe_linejoin: "+this.wireframe_linejoin+"<br/> )"}};THREE.MeshLambertMaterialCounter={value:0};
THREE.MeshPhongMaterial=function(a){this.id=THREE.MeshPhongMaterialCounter.value++;this.color=new THREE.Color(16777215);this.ambient=new THREE.Color(328965);this.specular=new THREE.Color(1118481);this.shininess=30;this.env_map=this.specular_map=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refraction_ratio=0.98;this.fog=true;this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;this.wireframe_linejoin=
this.wireframe_linecap="round";if(a){if(a.color!==undefined)this.color=new THREE.Color(a.color);if(a.ambient!==undefined)this.ambient=new THREE.Color(a.ambient);if(a.specular!==undefined)this.specular=new THREE.Color(a.specular);if(a.shininess!==undefined)this.shininess=a.shininess;if(a.map!==undefined)this.map=a.map;if(a.specular_map!==undefined)this.specular_map=a.specular_map;if(a.env_map!==undefined)this.env_map=a.env_map;if(a.combine!==undefined)this.combine=a.combine;if(a.reflectivity!==undefined)this.reflectivity=
a.reflectivity;if(a.refraction_ratio!==undefined)this.refraction_ratio=a.refraction_ratio;if(a.fog!==undefined)this.fog=a.fog;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth;if(a.wireframe_linecap!==undefined)this.wireframe_linecap=a.wireframe_linecap;if(a.wireframe_linejoin!==
undefined)this.wireframe_linejoin=a.wireframe_linejoin}};
THREE.MeshPhongMaterial.prototype={toString:function(){return"THREE.MeshPhongMaterial (<br/>id: "+this.id+"<br/>color: "+this.color+"<br/>ambient: "+this.ambient+"<br/>specular: "+this.specular+"<br/>shininess: "+this.shininess+"<br/>map: "+this.map+"<br/>specular_map: "+this.specular_map+"<br/>env_map: "+this.env_map+"<br/>combine: "+this.combine+"<br/>reflectivity: "+this.reflectivity+"<br/>refraction_ratio: "+this.refraction_ratio+"<br/>opacity: "+this.opacity+"<br/>shading: "+this.shading+"<br/>wireframe: "+
this.wireframe+"<br/>wireframe_linewidth: "+this.wireframe_linewidth+"<br/>wireframe_linecap: "+this.wireframe_linecap+"<br/>wireframe_linejoin: "+this.wireframe_linejoin+"<br/>)"}};THREE.MeshPhongMaterialCounter={value:0};
THREE.MeshDepthMaterial=function(a){this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;this.wireframe_linejoin=this.wireframe_linecap="round";if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}};THREE.MeshDepthMaterial.prototype={toString:function(){return"THREE.MeshDepthMaterial"}};
THREE.MeshNormalMaterial=function(a){this.opacity=1;this.shading=THREE.FlatShading;this.blending=THREE.NormalBlending;if(a){if(a.opacity!==undefined)this.opacity=a.opacity;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending}};THREE.MeshNormalMaterial.prototype={toString:function(){return"THREE.MeshNormalMaterial"}};THREE.MeshFaceMaterial=function(){};THREE.MeshFaceMaterial.prototype={toString:function(){return"THREE.MeshFaceMaterial"}};
THREE.MeshShaderMaterial=function(a){this.id=THREE.MeshShaderMaterialCounter.value++;this.vertex_shader=this.fragment_shader="void main() {}";this.uniforms={};this.opacity=1;this.shading=THREE.SmoothShading;this.blending=THREE.NormalBlending;this.wireframe=false;this.wireframe_linewidth=1;this.wireframe_linejoin=this.wireframe_linecap="round";if(a){if(a.fragment_shader!==undefined)this.fragment_shader=a.fragment_shader;if(a.vertex_shader!==undefined)this.vertex_shader=a.vertex_shader;if(a.uniforms!==
undefined)this.uniforms=a.uniforms;if(a.shading!==undefined)this.shading=a.shading;if(a.blending!==undefined)this.blending=a.blending;if(a.wireframe!==undefined)this.wireframe=a.wireframe;if(a.wireframe_linewidth!==undefined)this.wireframe_linewidth=a.wireframe_linewidth;if(a.wireframe_linecap!==undefined)this.wireframe_linecap=a.wireframe_linecap;if(a.wireframe_linejoin!==undefined)this.wireframe_linejoin=a.wireframe_linejoin}};
THREE.MeshShaderMaterial.prototype={toString:function(){return"THREE.MeshShaderMaterial (<br/>id: "+this.id+"<br/>blending: "+this.blending+"<br/>wireframe: "+this.wireframe+"<br/>wireframe_linewidth: "+this.wireframe_linewidth+"<br/>wireframe_linecap: "+this.wireframe_linecap+"<br/>wireframe_linejoin: "+this.wireframe_linejoin+"<br/>)"}};THREE.MeshShaderMaterialCounter={value:0};
THREE.ParticleBasicMaterial=function(a){this.color=new THREE.Color(16777215);this.map=null;this.opacity=1;this.blending=THREE.NormalBlending;this.offset=new THREE.Vector2;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.map!==undefined)this.map=a.map;if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}};
THREE.ParticleBasicMaterial.prototype={toString:function(){return"THREE.ParticleBasicMaterial (<br/>color: "+this.color+"<br/>map: "+this.map+"<br/>opacity: "+this.opacity+"<br/>blending: "+this.blending+"<br/>)"}};THREE.ParticleCircleMaterial=function(a){this.color=new THREE.Color(16777215);this.opacity=1;this.blending=THREE.NormalBlending;if(a){a.color!==undefined&&this.color.setHex(a.color);if(a.opacity!==undefined)this.opacity=a.opacity;if(a.blending!==undefined)this.blending=a.blending}};
THREE.ParticleCircleMaterial.prototype={toString:function(){return"THREE.ParticleCircleMaterial (<br/>color: "+this.color+"<br/>opacity: "+this.opacity+"<br/>blending: "+this.blending+"<br/>)"}};THREE.ParticleDOMMaterial=function(a){this.domElement=a};THREE.ParticleDOMMaterial.prototype={toString:function(){return"THREE.ParticleDOMMaterial ( domElement: "+this.domElement+" )"}};
THREE.Texture=function(a,c,d,e,g,h){this.image=a;this.mapping=c!==undefined?c:new THREE.UVMapping;this.wrap_s=d!==undefined?d:THREE.ClampToEdgeWrapping;this.wrap_t=e!==undefined?e:THREE.ClampToEdgeWrapping;this.mag_filter=g!==undefined?g:THREE.LinearFilter;this.min_filter=h!==undefined?h:THREE.LinearMipMapLinearFilter};
THREE.Texture.prototype={clone:function(){return new THREE.Texture(this.image,this.mapping,this.wrap_s,this.wrap_t,this.mag_filter,this.min_filter)},toString:function(){return"THREE.Texture (<br/>image: "+this.image+"<br/>wrap_s: "+this.wrap_s+"<br/>wrap_t: "+this.wrap_t+"<br/>mag_filter: "+this.mag_filter+"<br/>min_filter: "+this.min_filter+"<br/>)"}};THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.RepeatWrapping=0;THREE.ClampToEdgeWrapping=1;THREE.MirroredRepeatWrapping=2;
THREE.NearestFilter=3;THREE.NearestMipMapNearestFilter=4;THREE.NearestMipMapLinearFilter=5;THREE.LinearFilter=6;THREE.LinearMipMapNearestFilter=7;THREE.LinearMipMapLinearFilter=8;THREE.ByteType=9;THREE.UnsignedByteType=10;THREE.ShortType=11;THREE.UnsignedShortType=12;THREE.IntType=13;THREE.UnsignedIntType=14;THREE.FloatType=15;THREE.AlphaFormat=16;THREE.RGBFormat=17;THREE.RGBAFormat=18;THREE.LuminanceFormat=19;THREE.LuminanceAlphaFormat=20;
THREE.RenderTarget=function(a,c,d){this.width=a;this.height=c;d=d||{};this.wrap_s=d.wrap_s!==undefined?d.wrap_s:THREE.ClampToEdgeWrapping;this.wrap_t=d.wrap_t!==undefined?d.wrap_t:THREE.ClampToEdgeWrapping;this.mag_filter=d.mag_filter!==undefined?d.mag_filter:THREE.LinearFilter;this.min_filter=d.min_filter!==undefined?d.min_filter:THREE.LinearMipMapLinearFilter;this.format=d.format!==undefined?d.format:THREE.RGBFormat;this.type=d.type!==undefined?d.type:THREE.UnsignedByteType};
var Uniforms={clone:function(a){var c,d,e,g={};for(c in a){g[c]={};for(d in a[c]){e=a[c][d];g[c][d]=e instanceof THREE.Color||e instanceof THREE.Vector3||e instanceof THREE.Texture?e.clone():e}}return g},merge:function(a){var c,d,e,g={};for(c=0;c<a.length;c++){e=this.clone(a[c]);for(d in e)g[d]=e[d]}return g}};THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.LatitudeReflectionMapping=function(){};THREE.LatitudeRefractionMapping=function(){};
THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.UVMapping=function(){};
THREE.Scene=function(){this.objects=[];this.lights=[];this.fog=null;this.addObject=function(a){this.objects.indexOf(a)===-1&&this.objects.push(a)};this.removeObject=function(a){a=this.objects.indexOf(a);a!==-1&&this.objects.splice(a,1)};this.addLight=function(a){this.lights.indexOf(a)===-1&&this.lights.push(a)};this.removeLight=function(a){a=this.lights.indexOf(a);a!==-1&&this.lights.splice(a,1)};this.toString=function(){return"THREE.Scene ( "+this.objects+" )"}};
THREE.Fog=function(a,c,d){this.color=new THREE.Color(a);this.near=c||1;this.far=d||1E3};THREE.FogExp2=function(a,c){this.color=new THREE.Color(a);this.density=c||2.5E-4};
THREE.Projector=function(){function a(l,r){return r.z-l.z}function c(l,r){var C=0,m=1,t=l.z+l.w,v=r.z+r.w,s=-l.z+l.w,n=-r.z+r.w;if(t>=0&&v>=0&&s>=0&&n>=0)return true;else if(t<0&&v<0||s<0&&n<0)return false;else{if(t<0)C=Math.max(C,t/(t-v));else if(v<0)m=Math.min(m,t/(t-v));if(s<0)C=Math.max(C,s/(s-n));else if(n<0)m=Math.min(m,s/(s-n));if(m<C)return false;else{l.lerpSelf(r,C);r.lerpSelf(l,1-m);return true}}}var d,e,g=[],h,o,b,i=[],k,y,z=[],u,x,H=[],J=new THREE.Vector4,K=new THREE.Vector4,p=new THREE.Matrix4,
U=new THREE.Matrix4,F=[],f=new THREE.Vector4,j=new THREE.Vector4,q;this.projectObjects=function(l,r,C){var m=[],t,v;e=0;p.multiply(r.projectionMatrix,r.matrix);F[0]=new THREE.Vector4(p.n41-p.n11,p.n42-p.n12,p.n43-p.n13,p.n44-p.n14);F[1]=new THREE.Vector4(p.n41+p.n11,p.n42+p.n12,p.n43+p.n13,p.n44+p.n14);F[2]=new THREE.Vector4(p.n41+p.n21,p.n42+p.n22,p.n43+p.n23,p.n44+p.n24);F[3]=new THREE.Vector4(p.n41-p.n21,p.n42-p.n22,p.n43-p.n23,p.n44-p.n24);F[4]=new THREE.Vector4(p.n41-p.n31,p.n42-p.n32,p.n43-
p.n33,p.n44-p.n34);F[5]=new THREE.Vector4(p.n41+p.n31,p.n42+p.n32,p.n43+p.n33,p.n44+p.n34);r=0;for(t=F.length;r<t;r++){v=F[r];v.divideScalar(Math.sqrt(v.x*v.x+v.y*v.y+v.z*v.z))}t=l.objects;l=0;for(r=t.length;l<r;l++){v=t[l];var s;if(!(s=!v.visible)){if(s=v instanceof THREE.Mesh){a:{s=void 0;for(var n=v.position,E=-v.geometry.boundingSphere.radius*Math.max(v.scale.x,Math.max(v.scale.y,v.scale.z)),A=0;A<6;A++){s=F[A].x*n.x+F[A].y*n.y+F[A].z*n.z+F[A].w;if(s<=E){s=false;break a}}s=true}s=!s}s=s}if(!s){d=
g[e]=g[e]||new THREE.RenderableObject;J.copy(v.position);p.multiplyVector3(J);d.object=v;d.z=J.z;m.push(d);e++}}C&&m.sort(a);return m};this.projectScene=function(l,r,C){var m=[],t=r.near,v=r.far,s,n,E,A,O,N,G,W,P,I,L,V,S,w,M,Q;b=y=x=0;r.autoUpdateMatrix&&r.updateMatrix();p.multiply(r.projectionMatrix,r.matrix);N=this.projectObjects(l,r,true);l=0;for(s=N.length;l<s;l++){G=N[l].object;if(G.visible){G.autoUpdateMatrix&&G.updateMatrix();W=G.matrix;P=G.rotationMatrix;I=G.materials;L=G.overdraw;if(G instanceof
THREE.Mesh){V=G.geometry;S=V.vertices;n=0;for(E=S.length;n<E;n++){w=S[n];w.positionWorld.copy(w.position);W.multiplyVector3(w.positionWorld);A=w.positionScreen;A.copy(w.positionWorld);p.multiplyVector4(A);A.x/=A.w;A.y/=A.w;w.__visible=A.z>t&&A.z<v}V=V.faces;n=0;for(E=V.length;n<E;n++){w=V[n];if(w instanceof THREE.Face3){A=S[w.a];O=S[w.b];M=S[w.c];if(A.__visible&&O.__visible&&M.__visible)if(G.doubleSided||G.flipSided!=(M.positionScreen.x-A.positionScreen.x)*(O.positionScreen.y-A.positionScreen.y)-
(M.positionScreen.y-A.positionScreen.y)*(O.positionScreen.x-A.positionScreen.x)<0){h=i[b]=i[b]||new THREE.RenderableFace3;h.v1.positionWorld.copy(A.positionWorld);h.v2.positionWorld.copy(O.positionWorld);h.v3.positionWorld.copy(M.positionWorld);h.v1.positionScreen.copy(A.positionScreen);h.v2.positionScreen.copy(O.positionScreen);h.v3.positionScreen.copy(M.positionScreen);h.normalWorld.copy(w.normal);P.multiplyVector3(h.normalWorld);h.centroidWorld.copy(w.centroid);W.multiplyVector3(h.centroidWorld);
h.centroidScreen.copy(h.centroidWorld);p.multiplyVector3(h.centroidScreen);M=w.vertexNormals;q=h.vertexNormalsWorld;A=0;for(O=M.length;A<O;A++){Q=q[A]=q[A]||new THREE.Vector3;Q.copy(M[A]);P.multiplyVector3(Q)}h.z=h.centroidScreen.z;h.meshMaterials=I;h.faceMaterials=w.materials;h.overdraw=L;if(G.geometry.uvs[n]){h.uvs[0]=G.geometry.uvs[n][0];h.uvs[1]=G.geometry.uvs[n][1];h.uvs[2]=G.geometry.uvs[n][2]}m.push(h);b++}}else if(w instanceof THREE.Face4){A=S[w.a];O=S[w.b];M=S[w.c];Q=S[w.d];if(A.__visible&&
O.__visible&&M.__visible&&Q.__visible)if(G.doubleSided||G.flipSided!=((Q.positionScreen.x-A.positionScreen.x)*(O.positionScreen.y-A.positionScreen.y)-(Q.positionScreen.y-A.positionScreen.y)*(O.positionScreen.x-A.positionScreen.x)<0||(O.positionScreen.x-M.positionScreen.x)*(Q.positionScreen.y-M.positionScreen.y)-(O.positionScreen.y-M.positionScreen.y)*(Q.positionScreen.x-M.positionScreen.x)<0)){h=i[b]=i[b]||new THREE.RenderableFace3;h.v1.positionWorld.copy(A.positionWorld);h.v2.positionWorld.copy(O.positionWorld);
h.v3.positionWorld.copy(Q.positionWorld);h.v1.positionScreen.copy(A.positionScreen);h.v2.positionScreen.copy(O.positionScreen);h.v3.positionScreen.copy(Q.positionScreen);h.normalWorld.copy(w.normal);P.multiplyVector3(h.normalWorld);h.centroidWorld.copy(w.centroid);W.multiplyVector3(h.centroidWorld);h.centroidScreen.copy(h.centroidWorld);p.multiplyVector3(h.centroidScreen);h.z=h.centroidScreen.z;h.meshMaterials=I;h.faceMaterials=w.materials;h.overdraw=L;if(G.geometry.uvs[n]){h.uvs[0]=G.geometry.uvs[n][0];
h.uvs[1]=G.geometry.uvs[n][1];h.uvs[2]=G.geometry.uvs[n][3]}m.push(h);b++;o=i[b]=i[b]||new THREE.RenderableFace3;o.v1.positionWorld.copy(O.positionWorld);o.v2.positionWorld.copy(M.positionWorld);o.v3.positionWorld.copy(Q.positionWorld);o.v1.positionScreen.copy(O.positionScreen);o.v2.positionScreen.copy(M.positionScreen);o.v3.positionScreen.copy(Q.positionScreen);o.normalWorld.copy(h.normalWorld);o.centroidWorld.copy(h.centroidWorld);o.centroidScreen.copy(h.centroidScreen);o.z=o.centroidScreen.z;o.meshMaterials=
I;o.faceMaterials=w.materials;o.overdraw=L;if(G.geometry.uvs[n]){o.uvs[0]=G.geometry.uvs[n][1];o.uvs[1]=G.geometry.uvs[n][2];o.uvs[2]=G.geometry.uvs[n][3]}m.push(o);b++}}}}else if(G instanceof THREE.Line){U.multiply(p,W);S=G.geometry.vertices;w=S[0];w.positionScreen.copy(w.position);U.multiplyVector4(w.positionScreen);n=1;for(E=S.length;n<E;n++){A=S[n];A.positionScreen.copy(A.position);U.multiplyVector4(A.positionScreen);O=S[n-1];f.copy(A.positionScreen);j.copy(O.positionScreen);if(c(f,j)){f.multiplyScalar(1/
f.w);j.multiplyScalar(1/j.w);k=z[y]=z[y]||new THREE.RenderableLine;k.v1.positionScreen.copy(f);k.v2.positionScreen.copy(j);k.z=Math.max(f.z,j.z);k.materials=G.materials;m.push(k);y++}}}else if(G instanceof THREE.Particle){K.set(G.position.x,G.position.y,G.position.z,1);p.multiplyVector4(K);K.z/=K.w;if(K.z>0&&K.z<1){u=H[x]=H[x]||new THREE.RenderableParticle;u.x=K.x/K.w;u.y=K.y/K.w;u.z=K.z;u.rotation=G.rotation.z;u.scale.x=G.scale.x*Math.abs(u.x-(K.x+r.projectionMatrix.n11)/(K.w+r.projectionMatrix.n14));
u.scale.y=G.scale.y*Math.abs(u.y-(K.y+r.projectionMatrix.n22)/(K.w+r.projectionMatrix.n24));u.materials=G.materials;m.push(u);x++}}}}C&&m.sort(a);return m};this.unprojectVector=function(l,r){var C=THREE.Matrix4.makeInvert(r.matrix);C.multiplySelf(THREE.Matrix4.makeInvert(r.projectionMatrix));C.multiplyVector3(l);return l}};
THREE.DOMRenderer=function(){THREE.Renderer.call(this);var a=null,c=new THREE.Projector,d,e,g,h;this.domElement=document.createElement("div");this.setSize=function(o,b){d=o;e=b;g=d/2;h=e/2};this.render=function(o,b){var i,k,y,z,u,x,H,J;a=c.projectScene(o,b);i=0;for(k=a.length;i<k;i++){u=a[i];if(u instanceof THREE.RenderableParticle){H=u.x*g+g;J=u.y*h+h;y=0;for(z=u.material.length;y<z;y++){x=u.material[y];if(x instanceof THREE.ParticleDOMMaterial){x=x.domElement;x.style.left=H+"px";x.style.top=J+"px"}}}}}};
THREE.CanvasRenderer=function(){function a(ea){if(u!=ea)k.globalAlpha=u=ea}function c(ea){if(x!=ea){switch(ea){case THREE.NormalBlending:k.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:k.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:k.globalCompositeOperation="darker"}x=ea}}var d=null,e=new THREE.Projector,g=document.createElement("canvas"),h,o,b,i,k=g.getContext("2d"),y=new THREE.Color(0),z=0,u=1,x=0,H=null,J=null,K=1,p,U,F,f,j,q,l,r,C,m=new THREE.Color,
t=new THREE.Color,v=new THREE.Color,s=new THREE.Color,n=new THREE.Color,E,A,O,N,G,W,P,I,L,V=new THREE.Rectangle,S=new THREE.Rectangle,w=new THREE.Rectangle,M=false,Q=new THREE.Color,da=new THREE.Color,ba=new THREE.Color,Z=new THREE.Color,ja=Math.PI*2,Y=new THREE.Vector3,qa,ka,fa,ha,sa,ua,va=16;qa=document.createElement("canvas");qa.width=qa.height=2;ka=qa.getContext("2d");ka.fillStyle="rgba(0,0,0,1)";ka.fillRect(0,0,2,2);fa=ka.getImageData(0,0,2,2);ha=fa.data;sa=document.createElement("canvas");sa.width=
sa.height=va;ua=sa.getContext("2d");ua.translate(-va/2,-va/2);ua.scale(va,va);va--;this.domElement=g;this.sortElements=this.sortObjects=this.autoClear=true;this.setSize=function(ea,ra){h=ea;o=ra;b=h/2;i=o/2;g.width=h;g.height=o;V.set(-b,-i,b,i);u=1;x=0;J=H=null;K=1};this.setClearColor=function(ea,ra){y.setHex(ea);z=ra;S.set(-b,-i,b,i);k.setTransform(1,0,0,-1,b,i);this.clear()};this.clear=function(){if(!S.isEmpty()){S.inflate(1);S.minSelf(V);if(y.hex==0&&z==0)k.clearRect(S.getX(),S.getY(),S.getWidth(),
S.getHeight());else{c(THREE.NormalBlending);a(1);k.fillStyle="rgba("+Math.floor(y.r*255)+","+Math.floor(y.g*255)+","+Math.floor(y.b*255)+","+z+")";k.fillRect(S.getX(),S.getY(),S.getWidth(),S.getHeight())}S.empty()}};this.render=function(ea,ra){function Ma(B){var X,T,D,R=B.lights;da.setRGB(0,0,0);ba.setRGB(0,0,0);Z.setRGB(0,0,0);B=0;for(X=R.length;B<X;B++){T=R[B];D=T.color;if(T instanceof THREE.AmbientLight){da.r+=D.r;da.g+=D.g;da.b+=D.b}else if(T instanceof THREE.DirectionalLight){ba.r+=D.r;ba.g+=
D.g;ba.b+=D.b}else if(T instanceof THREE.PointLight){Z.r+=D.r;Z.g+=D.g;Z.b+=D.b}}}function Aa(B,X,T,D){var R,$,ca,ga,ia=B.lights;B=0;for(R=ia.length;B<R;B++){$=ia[B];ca=$.color;ga=$.intensity;if($ instanceof THREE.DirectionalLight){$=T.dot($.position)*ga;if($>0){D.r+=ca.r*$;D.g+=ca.g*$;D.b+=ca.b*$}}else if($ instanceof THREE.PointLight){Y.sub($.position,X);Y.normalize();$=T.dot(Y)*ga;if($>0){D.r+=ca.r*$;D.g+=ca.g*$;D.b+=ca.b*$}}}}function Na(B,X,T){if(T.opacity!=0){a(T.opacity);c(T.blending);var D,
R,$,ca,ga,ia;if(T instanceof THREE.ParticleBasicMaterial){if(T.map){ca=T.map;ga=ca.width>>1;ia=ca.height>>1;R=X.scale.x*b;$=X.scale.y*i;T=R*ga;D=$*ia;w.set(B.x-T,B.y-D,B.x+T,B.y+D);if(V.instersects(w)){k.save();k.translate(B.x,B.y);k.rotate(-X.rotation);k.scale(R,-$);k.translate(-ga,-ia);k.drawImage(ca,0,0);k.restore()}}}else if(T instanceof THREE.ParticleCircleMaterial){if(M){Q.r=da.r+ba.r+Z.r;Q.g=da.g+ba.g+Z.g;Q.b=da.b+ba.b+Z.b;m.r=T.color.r*Q.r;m.g=T.color.g*Q.g;m.b=T.color.b*Q.b;m.updateStyleString()}else m.__styleString=
T.color.__styleString;T=X.scale.x*b;D=X.scale.y*i;w.set(B.x-T,B.y-D,B.x+T,B.y+D);if(V.instersects(w)){R=m.__styleString;if(J!=R)k.fillStyle=J=R;k.save();k.translate(B.x,B.y);k.rotate(-X.rotation);k.scale(T,D);k.beginPath();k.arc(0,0,1,0,ja,true);k.closePath();k.fill();k.restore()}}}}function Oa(B,X,T,D){if(D.opacity!=0){a(D.opacity);c(D.blending);k.beginPath();k.moveTo(B.positionScreen.x,B.positionScreen.y);k.lineTo(X.positionScreen.x,X.positionScreen.y);k.closePath();if(D instanceof THREE.LineBasicMaterial){m.__styleString=
D.color.__styleString;B=D.linewidth;if(K!=B)k.lineWidth=K=B;B=m.__styleString;if(H!=B)k.strokeStyle=H=B;k.stroke();w.inflate(D.linewidth*2)}}}function Ia(B,X,T,D,R,$){if(R.opacity!=0){a(R.opacity);c(R.blending);f=B.positionScreen.x;j=B.positionScreen.y;q=X.positionScreen.x;l=X.positionScreen.y;r=T.positionScreen.x;C=T.positionScreen.y;k.beginPath();k.moveTo(f,j);k.lineTo(q,l);k.lineTo(r,C);k.lineTo(f,j);k.closePath();if(R instanceof THREE.MeshBasicMaterial)if(R.map)R.map.image.loaded&&R.map.mapping instanceof
THREE.UVMapping&&xa(f,j,q,l,r,C,R.map.image,D.uvs[0].u,D.uvs[0].v,D.uvs[1].u,D.uvs[1].v,D.uvs[2].u,D.uvs[2].v);else if(R.env_map){if(R.env_map.image.loaded)if(R.env_map.mapping instanceof THREE.SphericalReflectionMapping){B=ra.matrix;Y.copy(D.vertexNormalsWorld[0]);N=(Y.x*B.n11+Y.y*B.n12+Y.z*B.n13)*0.5+0.5;G=-(Y.x*B.n21+Y.y*B.n22+Y.z*B.n23)*0.5+0.5;Y.copy(D.vertexNormalsWorld[1]);W=(Y.x*B.n11+Y.y*B.n12+Y.z*B.n13)*0.5+0.5;P=-(Y.x*B.n21+Y.y*B.n22+Y.z*B.n23)*0.5+0.5;Y.copy(D.vertexNormalsWorld[2]);I=
(Y.x*B.n11+Y.y*B.n12+Y.z*B.n13)*0.5+0.5;L=-(Y.x*B.n21+Y.y*B.n22+Y.z*B.n23)*0.5+0.5;xa(f,j,q,l,r,C,R.env_map.image,N,G,W,P,I,L)}}else R.wireframe?Ba(R.color.__styleString,R.wireframe_linewidth):Ca(R.color.__styleString);else if(R instanceof THREE.MeshLambertMaterial){if(R.map&&!R.wireframe){R.map.mapping instanceof THREE.UVMapping&&xa(f,j,q,l,r,C,R.map.image,D.uvs[0].u,D.uvs[0].v,D.uvs[1].u,D.uvs[1].v,D.uvs[2].u,D.uvs[2].v);c(THREE.SubtractiveBlending)}if(M)if(!R.wireframe&&R.shading==THREE.SmoothShading&&
D.vertexNormalsWorld.length==3){t.r=v.r=s.r=da.r;t.g=v.g=s.g=da.g;t.b=v.b=s.b=da.b;Aa($,D.v1.positionWorld,D.vertexNormalsWorld[0],t);Aa($,D.v2.positionWorld,D.vertexNormalsWorld[1],v);Aa($,D.v3.positionWorld,D.vertexNormalsWorld[2],s);n.r=(v.r+s.r)*0.5;n.g=(v.g+s.g)*0.5;n.b=(v.b+s.b)*0.5;O=Ja(t,v,s,n);xa(f,j,q,l,r,C,O,0,0,1,0,0,1)}else{Q.r=da.r;Q.g=da.g;Q.b=da.b;Aa($,D.centroidWorld,D.normalWorld,Q);m.r=R.color.r*Q.r;m.g=R.color.g*Q.g;m.b=R.color.b*Q.b;m.updateStyleString();R.wireframe?Ba(m.__styleString,
R.wireframe_linewidth):Ca(m.__styleString)}else R.wireframe?Ba(R.color.__styleString,R.wireframe_linewidth):Ca(R.color.__styleString)}else if(R instanceof THREE.MeshDepthMaterial){E=ra.near;A=ra.far;t.r=t.g=t.b=1-Ea(B.positionScreen.z,E,A);v.r=v.g=v.b=1-Ea(X.positionScreen.z,E,A);s.r=s.g=s.b=1-Ea(T.positionScreen.z,E,A);n.r=(v.r+s.r)*0.5;n.g=(v.g+s.g)*0.5;n.b=(v.b+s.b)*0.5;O=Ja(t,v,s,n);xa(f,j,q,l,r,C,O,0,0,1,0,0,1)}else if(R instanceof THREE.MeshNormalMaterial){m.r=Fa(D.normalWorld.x);m.g=Fa(D.normalWorld.y);
m.b=Fa(D.normalWorld.z);m.updateStyleString();R.wireframe?Ba(m.__styleString,R.wireframe_linewidth):Ca(m.__styleString)}}}function Ba(B,X){if(H!=B)k.strokeStyle=H=B;if(K!=X)k.lineWidth=K=X;k.stroke();w.inflate(X*2)}function Ca(B){if(J!=B)k.fillStyle=J=B;k.fill()}function xa(B,X,T,D,R,$,ca,ga,ia,na,la,oa,ya){var ta,pa;ta=ca.width-1;pa=ca.height-1;ga*=ta;ia*=pa;na*=ta;la*=pa;oa*=ta;ya*=pa;T-=B;D-=X;R-=B;$-=X;na-=ga;la-=ia;oa-=ga;ya-=ia;pa=1/(na*ya-oa*la);ta=(ya*T-la*R)*pa;la=(ya*D-la*$)*pa;T=(na*R-
oa*T)*pa;D=(na*$-oa*D)*pa;B=B-ta*ga-T*ia;X=X-la*ga-D*ia;k.save();k.transform(ta,la,T,D,B,X);k.clip();k.drawImage(ca,0,0);k.restore()}function Ja(B,X,T,D){var R=~~(B.r*255),$=~~(B.g*255);B=~~(B.b*255);var ca=~~(X.r*255),ga=~~(X.g*255);X=~~(X.b*255);var ia=~~(T.r*255),na=~~(T.g*255);T=~~(T.b*255);var la=~~(D.r*255),oa=~~(D.g*255);D=~~(D.b*255);ha[0]=R<0?0:R>255?255:R;ha[1]=$<0?0:$>255?255:$;ha[2]=B<0?0:B>255?255:B;ha[4]=ca<0?0:ca>255?255:ca;ha[5]=ga<0?0:ga>255?255:ga;ha[6]=X<0?0:X>255?255:X;ha[8]=ia<
0?0:ia>255?255:ia;ha[9]=na<0?0:na>255?255:na;ha[10]=T<0?0:T>255?255:T;ha[12]=la<0?0:la>255?255:la;ha[13]=oa<0?0:oa>255?255:oa;ha[14]=D<0?0:D>255?255:D;ka.putImageData(fa,0,0);ua.drawImage(qa,0,0);return sa}function Ea(B,X,T){B=(B-X)/(T-X);return B*B*(3-2*B)}function Fa(B){B=(B+1)*0.5;return B<0?0:B>1?1:B}function Ga(B,X){var T=X.x-B.x,D=X.y-B.y,R=1/Math.sqrt(T*T+D*D);T*=R;D*=R;X.x+=T;X.y+=D;B.x-=T;B.y-=D}var Da,Ka,aa,ma,wa,Ha,La,za;k.setTransform(1,0,0,-1,b,i);this.autoClear&&this.clear();d=e.projectScene(ea,
ra,this.sortElements);(M=ea.lights.length>0)&&Ma(ea);Da=0;for(Ka=d.length;Da<Ka;Da++){aa=d[Da];w.empty();if(aa instanceof THREE.RenderableParticle){p=aa;p.x*=b;p.y*=i;ma=0;for(wa=aa.materials.length;ma<wa;ma++)Na(p,aa,aa.materials[ma],ea)}else if(aa instanceof THREE.RenderableLine){p=aa.v1;U=aa.v2;p.positionScreen.x*=b;p.positionScreen.y*=i;U.positionScreen.x*=b;U.positionScreen.y*=i;w.addPoint(p.positionScreen.x,p.positionScreen.y);w.addPoint(U.positionScreen.x,U.positionScreen.y);if(V.instersects(w)){ma=
0;for(wa=aa.materials.length;ma<wa;)Oa(p,U,aa,aa.materials[ma++],ea)}}else if(aa instanceof THREE.RenderableFace3){p=aa.v1;U=aa.v2;F=aa.v3;p.positionScreen.x*=b;p.positionScreen.y*=i;U.positionScreen.x*=b;U.positionScreen.y*=i;F.positionScreen.x*=b;F.positionScreen.y*=i;if(aa.overdraw){Ga(p.positionScreen,U.positionScreen);Ga(U.positionScreen,F.positionScreen);Ga(F.positionScreen,p.positionScreen)}w.add3Points(p.positionScreen.x,p.positionScreen.y,U.positionScreen.x,U.positionScreen.y,F.positionScreen.x,
F.positionScreen.y);if(V.instersects(w)){ma=0;for(wa=aa.meshMaterials.length;ma<wa;){za=aa.meshMaterials[ma++];if(za instanceof THREE.MeshFaceMaterial){Ha=0;for(La=aa.faceMaterials.length;Ha<La;)(za=aa.faceMaterials[Ha++])&&Ia(p,U,F,aa,za,ea)}else Ia(p,U,F,aa,za,ea)}}}S.addRectangle(w)}k.setTransform(1,0,0,1,0,0)}};
THREE.SVGRenderer=function(){function a(N,G,W){var P,I,L,V;P=0;for(I=N.lights.length;P<I;P++){L=N.lights[P];if(L instanceof THREE.DirectionalLight){V=G.normalWorld.dot(L.position)*L.intensity;if(V>0){W.r+=L.color.r*V;W.g+=L.color.g*V;W.b+=L.color.b*V}}else if(L instanceof THREE.PointLight){C.sub(L.position,G.centroidWorld);C.normalize();V=G.normalWorld.dot(C)*L.intensity;if(V>0){W.r+=L.color.r*V;W.g+=L.color.g*V;W.b+=L.color.b*V}}}}function c(N,G,W,P,I,L){s=e(n++);s.setAttribute("d","M "+N.positionScreen.x+
" "+N.positionScreen.y+" L "+G.positionScreen.x+" "+G.positionScreen.y+" L "+W.positionScreen.x+","+W.positionScreen.y+"z");if(I instanceof THREE.MeshBasicMaterial)F.__styleString=I.color.__styleString;else if(I instanceof THREE.MeshLambertMaterial)if(U){f.r=j.r;f.g=j.g;f.b=j.b;a(L,P,f);F.r=I.color.r*f.r;F.g=I.color.g*f.g;F.b=I.color.b*f.b;F.updateStyleString()}else F.__styleString=I.color.__styleString;else if(I instanceof THREE.MeshDepthMaterial){r=1-I.__2near/(I.__farPlusNear-P.z*I.__farMinusNear);
F.setRGB(r,r,r)}else I instanceof THREE.MeshNormalMaterial&&F.setRGB(g(P.normalWorld.x),g(P.normalWorld.y),g(P.normalWorld.z));I.wireframe?s.setAttribute("style","fill: none; stroke: "+F.__styleString+"; stroke-width: "+I.wireframe_linewidth+"; stroke-opacity: "+I.opacity+"; stroke-linecap: "+I.wireframe_linecap+"; stroke-linejoin: "+I.wireframe_linejoin):s.setAttribute("style","fill: "+F.__styleString+"; fill-opacity: "+I.opacity);b.appendChild(s)}function d(N,G,W,P,I,L,V){s=e(n++);s.setAttribute("d",
"M "+N.positionScreen.x+" "+N.positionScreen.y+" L "+G.positionScreen.x+" "+G.positionScreen.y+" L "+W.positionScreen.x+","+W.positionScreen.y+" L "+P.positionScreen.x+","+P.positionScreen.y+"z");if(L instanceof THREE.MeshBasicMaterial)F.__styleString=L.color.__styleString;else if(L instanceof THREE.MeshLambertMaterial)if(U){f.r=j.r;f.g=j.g;f.b=j.b;a(V,I,f);F.r=L.color.r*f.r;F.g=L.color.g*f.g;F.b=L.color.b*f.b;F.updateStyleString()}else F.__styleString=L.color.__styleString;else if(L instanceof THREE.MeshDepthMaterial){r=
1-L.__2near/(L.__farPlusNear-I.z*L.__farMinusNear);F.setRGB(r,r,r)}else L instanceof THREE.MeshNormalMaterial&&F.setRGB(g(I.normalWorld.x),g(I.normalWorld.y),g(I.normalWorld.z));L.wireframe?s.setAttribute("style","fill: none; stroke: "+F.__styleString+"; stroke-width: "+L.wireframe_linewidth+"; stroke-opacity: "+L.opacity+"; stroke-linecap: "+L.wireframe_linecap+"; stroke-linejoin: "+L.wireframe_linejoin):s.setAttribute("style","fill: "+F.__styleString+"; fill-opacity: "+L.opacity);b.appendChild(s)}
function e(N){if(m[N]==null){m[N]=document.createElementNS("http://www.w3.org/2000/svg","path");O==0&&m[N].setAttribute("shape-rendering","crispEdges");return m[N]}return m[N]}function g(N){return N<0?Math.min((1+N)*0.5,0.5):0.5+Math.min(N*0.5,0.5)}var h=null,o=new THREE.Projector,b=document.createElementNS("http://www.w3.org/2000/svg","svg"),i,k,y,z,u,x,H,J,K=new THREE.Rectangle,p=new THREE.Rectangle,U=false,F=new THREE.Color(16777215),f=new THREE.Color(16777215),j=new THREE.Color(0),q=new THREE.Color(0),
l=new THREE.Color(0),r,C=new THREE.Vector3,m=[],t=[],v=[],s,n,E,A,O=1;this.domElement=b;this.sortElements=this.sortObjects=this.autoClear=true;this.setQuality=function(N){switch(N){case "high":O=1;break;case "low":O=0}};this.setSize=function(N,G){i=N;k=G;y=i/2;z=k/2;b.setAttribute("viewBox",-y+" "+-z+" "+i+" "+k);b.setAttribute("width",i);b.setAttribute("height",k);K.set(-y,-z,y,z)};this.clear=function(){for(;b.childNodes.length>0;)b.removeChild(b.childNodes[0])};this.render=function(N,G){var W,P,
I,L,V,S,w,M;this.autoClear&&this.clear();h=o.projectScene(N,G,this.sortElements);A=E=n=0;if(U=N.lights.length>0){w=N.lights;j.setRGB(0,0,0);q.setRGB(0,0,0);l.setRGB(0,0,0);W=0;for(P=w.length;W<P;W++){I=w[W];L=I.color;if(I instanceof THREE.AmbientLight){j.r+=L.r;j.g+=L.g;j.b+=L.b}else if(I instanceof THREE.DirectionalLight){q.r+=L.r;q.g+=L.g;q.b+=L.b}else if(I instanceof THREE.PointLight){l.r+=L.r;l.g+=L.g;l.b+=L.b}}}W=0;for(P=h.length;W<P;W++){w=h[W];p.empty();if(w instanceof THREE.RenderableParticle){u=
w;u.x*=y;u.y*=-z;I=0;for(L=w.materials.length;I<L;I++)if(M=w.materials[I]){V=u;S=w;M=M;var Q=E++;if(t[Q]==null){t[Q]=document.createElementNS("http://www.w3.org/2000/svg","circle");O==0&&t[Q].setAttribute("shape-rendering","crispEdges")}s=t[Q];s.setAttribute("cx",V.x);s.setAttribute("cy",V.y);s.setAttribute("r",S.scale.x*y);if(M instanceof THREE.ParticleCircleMaterial){if(U){f.r=j.r+q.r+l.r;f.g=j.g+q.g+l.g;f.b=j.b+q.b+l.b;F.r=M.color.r*f.r;F.g=M.color.g*f.g;F.b=M.color.b*f.b;F.updateStyleString()}else F=
M.color;s.setAttribute("style","fill: "+F.__styleString)}b.appendChild(s)}}else if(w instanceof THREE.RenderableLine){u=w.v1;x=w.v2;u.positionScreen.x*=y;u.positionScreen.y*=-z;x.positionScreen.x*=y;x.positionScreen.y*=-z;p.addPoint(u.positionScreen.x,u.positionScreen.y);p.addPoint(x.positionScreen.x,x.positionScreen.y);if(K.instersects(p)){I=0;for(L=w.materials.length;I<L;)if(M=w.materials[I++]){V=u;S=x;M=M;Q=A++;if(v[Q]==null){v[Q]=document.createElementNS("http://www.w3.org/2000/svg","line");O==
0&&v[Q].setAttribute("shape-rendering","crispEdges")}s=v[Q];s.setAttribute("x1",V.positionScreen.x);s.setAttribute("y1",V.positionScreen.y);s.setAttribute("x2",S.positionScreen.x);s.setAttribute("y2",S.positionScreen.y);if(M instanceof THREE.LineBasicMaterial){F.__styleString=M.color.__styleString;s.setAttribute("style","fill: none; stroke: "+F.__styleString+"; stroke-width: "+M.linewidth+"; stroke-opacity: "+M.opacity+"; stroke-linecap: "+M.linecap+"; stroke-linejoin: "+M.linejoin);b.appendChild(s)}}}}else if(w instanceof
THREE.RenderableFace3){u=w.v1;x=w.v2;H=w.v3;u.positionScreen.x*=y;u.positionScreen.y*=-z;x.positionScreen.x*=y;x.positionScreen.y*=-z;H.positionScreen.x*=y;H.positionScreen.y*=-z;p.addPoint(u.positionScreen.x,u.positionScreen.y);p.addPoint(x.positionScreen.x,x.positionScreen.y);p.addPoint(H.positionScreen.x,H.positionScreen.y);if(K.instersects(p)){I=0;for(L=w.meshMaterials.length;I<L;){M=w.meshMaterials[I++];if(M instanceof THREE.MeshFaceMaterial){V=0;for(S=w.faceMaterials.length;V<S;)(M=w.faceMaterials[V++])&&
c(u,x,H,w,M,N)}else M&&c(u,x,H,w,M,N)}}}else if(w instanceof THREE.RenderableFace4){u=w.v1;x=w.v2;H=w.v3;J=w.v4;u.positionScreen.x*=y;u.positionScreen.y*=-z;x.positionScreen.x*=y;x.positionScreen.y*=-z;H.positionScreen.x*=y;H.positionScreen.y*=-z;J.positionScreen.x*=y;J.positionScreen.y*=-z;p.addPoint(u.positionScreen.x,u.positionScreen.y);p.addPoint(x.positionScreen.x,x.positionScreen.y);p.addPoint(H.positionScreen.x,H.positionScreen.y);p.addPoint(J.positionScreen.x,J.positionScreen.y);if(K.instersects(p)){I=
0;for(L=w.meshMaterials.length;I<L;){M=w.meshMaterials[I++];if(M instanceof THREE.MeshFaceMaterial){V=0;for(S=w.faceMaterials.length;V<S;)(M=w.faceMaterials[V++])&&d(u,x,H,J,w,M,N)}else M&&d(u,x,H,J,w,M,N)}}}}}};
THREE.WebGLRenderer=function(a){function c(f,j){f.fragment_shader=j.fragment_shader;f.vertex_shader=j.vertex_shader;f.uniforms=Uniforms.clone(j.uniforms)}function d(f,j){f.uniforms.color.value.setRGB(f.color.r*f.opacity,f.color.g*f.opacity,f.color.b*f.opacity);f.uniforms.opacity.value=f.opacity;f.uniforms.map.texture=f.map;f.uniforms.env_map.texture=f.env_map;f.uniforms.reflectivity.value=f.reflectivity;f.uniforms.refraction_ratio.value=f.refraction_ratio;f.uniforms.combine.value=f.combine;f.uniforms.useRefract.value=
f.env_map&&f.env_map.mapping instanceof THREE.CubeRefractionMapping;if(j){f.uniforms.fogColor.value.setHex(j.color.hex);if(j instanceof THREE.Fog){f.uniforms.fogNear.value=j.near;f.uniforms.fogFar.value=j.far}else if(j instanceof THREE.FogExp2)f.uniforms.fogDensity.value=j.density}}function e(f,j){f.uniforms.color.value.setRGB(f.color.r*f.opacity,f.color.g*f.opacity,f.color.b*f.opacity);f.uniforms.opacity.value=f.opacity;if(j){f.uniforms.fogColor.value.setHex(j.color.hex);if(j instanceof THREE.Fog){f.uniforms.fogNear.value=
j.near;f.uniforms.fogFar.value=j.far}else if(j instanceof THREE.FogExp2)f.uniforms.fogDensity.value=j.density}}function g(f,j){var q;if(f=="fragment")q=b.createShader(b.FRAGMENT_SHADER);else if(f=="vertex")q=b.createShader(b.VERTEX_SHADER);b.shaderSource(q,j);b.compileShader(q);if(!b.getShaderParameter(q,b.COMPILE_STATUS)){alert(b.getShaderInfoLog(q));return null}return q}function h(f){switch(f){case THREE.RepeatWrapping:return b.REPEAT;case THREE.ClampToEdgeWrapping:return b.CLAMP_TO_EDGE;case THREE.MirroredRepeatWrapping:return b.MIRRORED_REPEAT;
case THREE.NearestFilter:return b.NEAREST;case THREE.NearestMipMapNearestFilter:return b.NEAREST_MIPMAP_NEAREST;case THREE.NearestMipMapLinearFilter:return b.NEAREST_MIPMAP_LINEAR;case THREE.LinearFilter:return b.LINEAR;case THREE.LinearMipMapNearestFilter:return b.LINEAR_MIPMAP_NEAREST;case THREE.LinearMipMapLinearFilter:return b.LINEAR_MIPMAP_LINEAR;case THREE.ByteType:return b.BYTE;case THREE.UnsignedByteType:return b.UNSIGNED_BYTE;case THREE.ShortType:return b.SHORT;case THREE.UnsignedShortType:return b.UNSIGNED_SHORT;
case THREE.IntType:return b.INT;case THREE.UnsignedShortType:return b.UNSIGNED_INT;case THREE.FloatType:return b.FLOAT;case THREE.AlphaFormat:return b.ALPHA;case THREE.RGBFormat:return b.RGB;case THREE.RGBAFormat:return b.RGBA;case THREE.LuminanceFormat:return b.LUMINANCE;case THREE.LuminanceAlphaFormat:return b.LUMINANCE_ALPHA}return 0}var o=document.createElement("canvas"),b,i=null,k=null,y=new THREE.Matrix4,z,u=new Float32Array(16),x=new Float32Array(16),H=new Float32Array(16),J=new Float32Array(9),
K=new Float32Array(16),p=true,U=new THREE.Color(0),F=0;if(a){if(a.antialias!==undefined)p=a.antialias;a.clearColor!==undefined&&U.setHex(a.clearColor);if(a.clearAlpha!==undefined)F=a.clearAlpha}this.domElement=o;this.autoClear=true;(function(f,j,q){try{b=o.getContext("experimental-webgl",{antialias:f})}catch(l){}if(!b){alert("WebGL not supported");throw"cannot create webgl context";}b.clearColor(0,0,0,1);b.clearDepth(1);b.enable(b.DEPTH_TEST);b.depthFunc(b.LEQUAL);b.frontFace(b.CCW);b.cullFace(b.BACK);
b.enable(b.CULL_FACE);b.enable(b.BLEND);b.blendFunc(b.ONE,b.ONE_MINUS_SRC_ALPHA);b.clearColor(j.r,j.g,j.b,q)})(p,U,F);this.context=b;this.lights={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[]}};this.setSize=function(f,j){o.width=f;o.height=j;b.viewport(0,0,o.width,o.height)};this.setClearColor=function(f,j){var q=new THREE.Color(f);b.clearColor(q.r,q.g,q.b,j)};this.clear=function(){b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT)};this.setupLights=
function(f,j){var q,l,r,C=0,m=0,t=0,v,s,n,E=this.lights,A=E.directional.colors,O=E.directional.positions,N=E.point.colors,G=E.point.positions,W=0,P=0;q=0;for(l=j.length;q<l;q++){r=j[q];v=r.color;s=r.position;n=r.intensity;if(r instanceof THREE.AmbientLight){C+=v.r;m+=v.g;t+=v.b}else if(r instanceof THREE.DirectionalLight){A[W*3]=v.r*n;A[W*3+1]=v.g*n;A[W*3+2]=v.b*n;O[W*3]=s.x;O[W*3+1]=s.y;O[W*3+2]=s.z;W+=1}else if(r instanceof THREE.PointLight){N[P*3]=v.r*n;N[P*3+1]=v.g*n;N[P*3+2]=v.b*n;G[P*3]=s.x;
G[P*3+1]=s.y;G[P*3+2]=s.z;P+=1}}E.point.length=P;E.directional.length=W;E.ambient[0]=C;E.ambient[1]=m;E.ambient[2]=t};this.createParticleBuffers=function(f){f.__webGLVertexBuffer=b.createBuffer();f.__webGLFaceBuffer=b.createBuffer()};this.createLineBuffers=function(f){f.__webGLVertexBuffer=b.createBuffer();f.__webGLLineBuffer=b.createBuffer()};this.createMeshBuffers=function(f){f.__webGLVertexBuffer=b.createBuffer();f.__webGLNormalBuffer=b.createBuffer();f.__webGLTangentBuffer=b.createBuffer();f.__webGLUVBuffer=
b.createBuffer();f.__webGLFaceBuffer=b.createBuffer();f.__webGLLineBuffer=b.createBuffer()};this.initLineBuffers=function(f){var j=f.vertices.length;f.__vertexArray=new Float32Array(j*3);f.__lineArray=new Uint16Array(j);f.__webGLLineCount=j};this.initMeshBuffers=function(f,j){var q,l,r=0,C=0,m=0,t=j.geometry.faces,v=f.faces;q=0;for(l=v.length;q<l;q++){fi=v[q];face=t[fi];if(face instanceof THREE.Face3){r+=3;C+=1;m+=3}else if(face instanceof THREE.Face4){r+=4;C+=2;m+=4}}f.__vertexArray=new Float32Array(r*
3);f.__normalArray=new Float32Array(r*3);f.__tangentArray=new Float32Array(r*4);f.__uvArray=new Float32Array(r*2);f.__faceArray=new Uint16Array(C*3);f.__lineArray=new Uint16Array(m*2);r=false;q=0;for(l=j.materials.length;q<l;q++){t=j.materials[q];if(t instanceof THREE.MeshFaceMaterial){t=0;for(v=f.materials.length;t<v;t++)if(f.materials[t]&&f.materials[t].shading!=undefined&&f.materials[t].shading==THREE.SmoothShading){r=true;break}}else if(t&&t.shading!=undefined&&t.shading==THREE.SmoothShading){r=
true;break}if(r)break}f.__needsSmoothNormals=r;f.__webGLFaceCount=C*3;f.__webGLLineCount=m*2};this.setMeshBuffers=function(f,j,q,l,r,C,m,t){var v,s,n,E,A,O,N,G,W,P=0,I=0,L=0,V=0,S=0,w=0,M=0,Q=f.__vertexArray,da=f.__uvArray,ba=f.__normalArray,Z=f.__tangentArray,ja=f.__faceArray,Y=f.__lineArray,qa=f.__needsSmoothNormals,ka=j.geometry,fa=ka.vertices,ha=f.faces,sa=ka.faces,ua=ka.uvs;j=0;for(v=ha.length;j<v;j++){s=ha[j];n=sa[s];s=ua[s];E=n.vertexNormals;A=n.normal;if(n instanceof THREE.Face3){if(l){O=
fa[n.a].position;N=fa[n.b].position;G=fa[n.c].position;Q[I]=O.x;Q[I+1]=O.y;Q[I+2]=O.z;Q[I+3]=N.x;Q[I+4]=N.y;Q[I+5]=N.z;Q[I+6]=G.x;Q[I+7]=G.y;Q[I+8]=G.z;I+=9}if(t&&ka.hasTangents){O=fa[n.a].tangent;N=fa[n.b].tangent;G=fa[n.c].tangent;Z[w]=O.x;Z[w+1]=O.y;Z[w+2]=O.z;Z[w+3]=O.w;Z[w+4]=N.x;Z[w+5]=N.y;Z[w+6]=N.z;Z[w+7]=N.w;Z[w+8]=G.x;Z[w+9]=G.y;Z[w+10]=G.z;Z[w+11]=G.w;w+=12}if(m)if(E.length==3&&qa)for(n=0;n<3;n++){A=E[n];ba[S]=A.x;ba[S+1]=A.y;ba[S+2]=A.z;S+=3}else for(n=0;n<3;n++){ba[S]=A.x;ba[S+1]=A.y;
ba[S+2]=A.z;S+=3}if(C&&s)for(n=0;n<3;n++){E=s[n];da[L]=E.u;da[L+1]=E.v;L+=2}if(r){ja[V]=P;ja[V+1]=P+1;ja[V+2]=P+2;V+=3;Y[M]=P;Y[M+1]=P+1;Y[M+2]=P;Y[M+3]=P+2;Y[M+4]=P+1;Y[M+5]=P+2;M+=6;P+=3}}else if(n instanceof THREE.Face4){if(l){O=fa[n.a].position;N=fa[n.b].position;G=fa[n.c].position;W=fa[n.d].position;Q[I]=O.x;Q[I+1]=O.y;Q[I+2]=O.z;Q[I+3]=N.x;Q[I+4]=N.y;Q[I+5]=N.z;Q[I+6]=G.x;Q[I+7]=G.y;Q[I+8]=G.z;Q[I+9]=W.x;Q[I+10]=W.y;Q[I+11]=W.z;I+=12}if(t&&ka.hasTangents){O=fa[n.a].tangent;N=fa[n.b].tangent;
G=fa[n.c].tangent;n=fa[n.d].tangent;Z[w]=O.x;Z[w+1]=O.y;Z[w+2]=O.z;Z[w+3]=O.w;Z[w+4]=N.x;Z[w+5]=N.y;Z[w+6]=N.z;Z[w+7]=N.w;Z[w+8]=G.x;Z[w+9]=G.y;Z[w+10]=G.z;Z[w+11]=G.w;Z[w+12]=n.x;Z[w+13]=n.y;Z[w+14]=n.z;Z[w+15]=n.w;w+=16}if(m)if(E.length==4&&qa)for(n=0;n<4;n++){A=E[n];ba[S]=A.x;ba[S+1]=A.y;ba[S+2]=A.z;S+=3}else for(n=0;n<4;n++){ba[S]=A.x;ba[S+1]=A.y;ba[S+2]=A.z;S+=3}if(C&&s)for(n=0;n<4;n++){E=s[n];da[L]=E.u;da[L+1]=E.v;L+=2}if(r){ja[V]=P;ja[V+1]=P+1;ja[V+2]=P+2;ja[V+3]=P;ja[V+4]=P+2;ja[V+5]=P+3;
V+=6;Y[M]=P;Y[M+1]=P+1;Y[M+2]=P;Y[M+3]=P+3;Y[M+4]=P+1;Y[M+5]=P+2;Y[M+6]=P+2;Y[M+7]=P+3;M+=8;P+=4}}}if(l){b.bindBuffer(b.ARRAY_BUFFER,f.__webGLVertexBuffer);b.bufferData(b.ARRAY_BUFFER,Q,q)}if(m){b.bindBuffer(b.ARRAY_BUFFER,f.__webGLNormalBuffer);b.bufferData(b.ARRAY_BUFFER,ba,q)}if(t&&ka.hasTangents){b.bindBuffer(b.ARRAY_BUFFER,f.__webGLTangentBuffer);b.bufferData(b.ARRAY_BUFFER,Z,q)}if(C&&L>0){b.bindBuffer(b.ARRAY_BUFFER,f.__webGLUVBuffer);b.bufferData(b.ARRAY_BUFFER,da,q)}if(r){b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
f.__webGLFaceBuffer);b.bufferData(b.ELEMENT_ARRAY_BUFFER,ja,q);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,f.__webGLLineBuffer);b.bufferData(b.ELEMENT_ARRAY_BUFFER,Y,q)}};this.setLineBuffers=function(f,j,q,l){var r,C,m=f.vertices,t=m.length,v=f.__vertexArray,s=f.__lineArray;if(q)for(q=0;q<t;q++){r=m[q].position;C=q*3;v[C]=r.x;v[C+1]=r.y;v[C+2]=r.z}if(l)for(q=0;q<t;q++)s[q]=q;b.bindBuffer(b.ARRAY_BUFFER,f.__webGLVertexBuffer);b.bufferData(b.ARRAY_BUFFER,v,j);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,f.__webGLLineBuffer);
b.bufferData(b.ELEMENT_ARRAY_BUFFER,s,j)};this.setParticleBuffers=function(){};this.renderBuffer=function(f,j,q,l,r,C){var m,t,v,s;if(!l.program){if(l instanceof THREE.MeshDepthMaterial){c(l,THREE.ShaderLib.depth);l.uniforms.mNear.value=f.near;l.uniforms.mFar.value=f.far}else if(l instanceof THREE.MeshNormalMaterial)c(l,THREE.ShaderLib.normal);else if(l instanceof THREE.MeshBasicMaterial){c(l,THREE.ShaderLib.basic);d(l,q)}else if(l instanceof THREE.MeshLambertMaterial){c(l,THREE.ShaderLib.lambert);
d(l,q)}else if(l instanceof THREE.MeshPhongMaterial){c(l,THREE.ShaderLib.phong);d(l,q)}else if(l instanceof THREE.LineBasicMaterial){c(l,THREE.ShaderLib.basic);e(l,q)}var n,E,A;n=s=t=0;for(E=j.length;n<E;n++){A=j[n];A instanceof THREE.DirectionalLight&&s++;A instanceof THREE.PointLight&&t++}if(t+s<=4){n=s;t=t}else{n=Math.ceil(4*s/(t+s));t=4-n}t={directional:n,point:t};s={fog:q,map:l.map,env_map:l.env_map,maxDirLights:t.directional,maxPointLights:t.point};t=l.fragment_shader;n=l.vertex_shader;E=b.createProgram();
A=["#ifdef GL_ES\nprecision highp float;\n#endif","#define MAX_DIR_LIGHTS "+s.maxDirLights,"#define MAX_POINT_LIGHTS "+s.maxPointLights,s.fog?"#define USE_FOG":"",s.fog instanceof THREE.FogExp2?"#define FOG_EXP2":"",s.map?"#define USE_MAP":"",s.env_map?"#define USE_ENVMAP":"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n");s=[b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)>0?"#define VERTEX_TEXTURES":"","#define MAX_DIR_LIGHTS "+s.maxDirLights,"#define MAX_POINT_LIGHTS "+s.maxPointLights,
s.map?"#define USE_MAP":"",s.env_map?"#define USE_ENVMAP":"","uniform mat4 objectMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\n"].join("\n");b.attachShader(E,g("fragment",A+t));b.attachShader(E,g("vertex",s+n));b.linkProgram(E);b.getProgramParameter(E,b.LINK_STATUS)||alert("Could not initialise shaders\nVALIDATE_STATUS: "+
b.getProgramParameter(E,b.VALIDATE_STATUS)+", gl error ["+b.getError()+"]");E.uniforms={};E.attributes={};l.program=E;t=["viewMatrix","modelViewMatrix","projectionMatrix","normalMatrix","objectMatrix","cameraPosition"];for(m in l.uniforms)t.push(m);m=l.program;n=0;for(E=t.length;n<E;n++){A=t[n];m.uniforms[A]=b.getUniformLocation(m,A)}m=l.program;t=["position","normal","uv","tangent"];n=0;for(E=t.length;n<E;n++){A=t[n];m.attributes[A]=b.getAttribLocation(m,A)}}m=l.program;if(m!=i){b.useProgram(m);
i=m}this.loadCamera(m,f);this.loadMatrices(m);if(l instanceof THREE.MeshPhongMaterial||l instanceof THREE.MeshLambertMaterial){this.setupLights(m,j);f=this.lights;l.uniforms.enableLighting.value=f.directional.length+f.point.length;l.uniforms.ambientLightColor.value=f.ambient;l.uniforms.directionalLightColor.value=f.directional.colors;l.uniforms.directionalLightDirection.value=f.directional.positions;l.uniforms.pointLightColor.value=f.point.colors;l.uniforms.pointLightPosition.value=f.point.positions}if(l instanceof
THREE.MeshBasicMaterial||l instanceof THREE.MeshLambertMaterial||l instanceof THREE.MeshPhongMaterial)d(l,q);l instanceof THREE.LineBasicMaterial&&e(l,q);if(l instanceof THREE.MeshPhongMaterial){l.uniforms.ambient.value.setRGB(l.ambient.r,l.ambient.g,l.ambient.b);l.uniforms.specular.value.setRGB(l.specular.r,l.specular.g,l.specular.b);l.uniforms.shininess.value=l.shininess}q=l.uniforms;for(v in q)if(n=m.uniforms[v]){j=q[v];t=j.type;f=j.value;if(t=="i")b.uniform1i(n,f);else if(t=="f")b.uniform1f(n,
f);else if(t=="fv1")b.uniform1fv(n,f);else if(t=="fv")b.uniform3fv(n,f);else if(t=="v2")b.uniform2f(n,f.x,f.y);else if(t=="v3")b.uniform3f(n,f.x,f.y,f.z);else if(t=="c")b.uniform3f(n,f.r,f.g,f.b);else if(t=="t"){b.uniform1i(n,f);if(j=j.texture)if(j.image instanceof Array&&j.image.length==6){j=j;f=f;if(j.image.length==6){if(!j.image.__webGLTextureCube&&!j.image.__cubeMapInitialized&&j.image.loadCount==6){j.image.__webGLTextureCube=b.createTexture();b.bindTexture(b.TEXTURE_CUBE_MAP,j.image.__webGLTextureCube);
b.texParameteri(b.TEXTURE_CUBE_MAP,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_CUBE_MAP,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_CUBE_MAP,b.TEXTURE_MAG_FILTER,b.LINEAR);b.texParameteri(b.TEXTURE_CUBE_MAP,b.TEXTURE_MIN_FILTER,b.LINEAR_MIPMAP_LINEAR);for(t=0;t<6;++t)b.texImage2D(b.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,j.image[t]);b.generateMipmap(b.TEXTURE_CUBE_MAP);b.bindTexture(b.TEXTURE_CUBE_MAP,null);j.image.__cubeMapInitialized=true}b.activeTexture(b.TEXTURE0+
f);b.bindTexture(b.TEXTURE_CUBE_MAP,j.image.__webGLTextureCube)}}else{j=j;f=f;if(!j.__webGLTexture&&j.image.loaded){j.__webGLTexture=b.createTexture();b.bindTexture(b.TEXTURE_2D,j.__webGLTexture);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,j.image);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,h(j.wrap_s));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,h(j.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,h(j.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,h(j.min_filter));
b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}b.activeTexture(b.TEXTURE0+f);b.bindTexture(b.TEXTURE_2D,j.__webGLTexture)}}}v=m.attributes;b.bindBuffer(b.ARRAY_BUFFER,r.__webGLVertexBuffer);b.vertexAttribPointer(v.position,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(v.position);if(v.normal>=0){b.bindBuffer(b.ARRAY_BUFFER,r.__webGLNormalBuffer);b.vertexAttribPointer(v.normal,3,b.FLOAT,false,0,0);b.enableVertexAttribArray(v.normal)}if(v.tangent>=0){b.bindBuffer(b.ARRAY_BUFFER,r.__webGLTangentBuffer);
b.vertexAttribPointer(v.tangent,4,b.FLOAT,false,0,0);b.enableVertexAttribArray(v.tangent)}if(v.uv>=0)if(r.__webGLUVBuffer){b.bindBuffer(b.ARRAY_BUFFER,r.__webGLUVBuffer);b.vertexAttribPointer(v.uv,2,b.FLOAT,false,0,0);b.enableVertexAttribArray(v.uv)}else b.disableVertexAttribArray(v.uv);if(l.wireframe||l instanceof THREE.LineBasicMaterial){v=l.wireframe_linewidth!==undefined?l.wireframe_linewidth:l.linewidth!==undefined?l.linewidth:1;l=l instanceof THREE.LineBasicMaterial&&C.type==THREE.LineStrip?
b.LINE_STRIP:b.LINES;b.lineWidth(v);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,r.__webGLLineBuffer);b.drawElements(l,r.__webGLLineCount,b.UNSIGNED_SHORT,0)}else{b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,r.__webGLFaceBuffer);b.drawElements(b.TRIANGLES,r.__webGLFaceCount,b.UNSIGNED_SHORT,0)}};this.renderPass=function(f,j,q,l,r,C,m){var t,v,s,n,E;s=0;for(n=l.materials.length;s<n;s++){t=l.materials[s];if(t instanceof THREE.MeshFaceMaterial){t=0;for(v=r.materials.length;t<v;t++)if((E=r.materials[t])&&E.blending==C&&
E.opacity<1==m){this.setBlending(E.blending);this.renderBuffer(f,j,q,E,r,l)}}else if((E=t)&&E.blending==C&&E.opacity<1==m){this.setBlending(E.blending);this.renderBuffer(f,j,q,E,r,l)}}};this.render=function(f,j,q,l){var r,C,m,t=f.lights,v=f.fog;this.initWebGLObjects(f);l=l!==undefined?l:true;if(q&&!q.__webGLFramebuffer){q.__webGLFramebuffer=b.createFramebuffer();q.__webGLRenderbuffer=b.createRenderbuffer();q.__webGLTexture=b.createTexture();b.bindRenderbuffer(b.RENDERBUFFER,q.__webGLRenderbuffer);
b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,q.width,q.height);b.bindTexture(b.TEXTURE_2D,q.__webGLTexture);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,h(q.wrap_s));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,h(q.wrap_t));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,h(q.mag_filter));b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,h(q.min_filter));b.texImage2D(b.TEXTURE_2D,0,h(q.format),q.width,q.height,0,h(q.format),h(q.type),null);b.bindFramebuffer(b.FRAMEBUFFER,q.__webGLFramebuffer);
b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,q.__webGLTexture,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,q.__webGLRenderbuffer);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null)}if(q){r=q.__webGLFramebuffer;m=q.width;C=q.height}else{r=null;m=o.width;C=o.height}if(r!=k){b.bindFramebuffer(b.FRAMEBUFFER,r);b.viewport(0,0,m,C);l&&b.clear(b.COLOR_BUFFER_BIT|b.DEPTH_BUFFER_BIT);k=r}this.autoClear&&
this.clear();j.autoUpdateMatrix&&j.updateMatrix();u.set(j.matrix.flatten());H.set(j.projectionMatrix.flatten());l=0;for(r=f.__webGLObjects.length;l<r;l++){C=f.__webGLObjects[l];m=C.object;C=C.buffer;if(m.visible){this.setupMatrices(m,j);this.renderPass(j,t,v,m,C,THREE.NormalBlending,false)}}l=0;for(r=f.__webGLObjects.length;l<r;l++){C=f.__webGLObjects[l];m=C.object;C=C.buffer;if(m.visible){this.setupMatrices(m,j);if(m.doubleSided)b.disable(b.CULL_FACE);else{b.enable(b.CULL_FACE);m.flipSided?b.frontFace(b.CW):
b.frontFace(b.CCW)}this.renderPass(j,t,v,m,C,THREE.AdditiveBlending,false);this.renderPass(j,t,v,m,C,THREE.SubtractiveBlending,false);this.renderPass(j,t,v,m,C,THREE.AdditiveBlending,true);this.renderPass(j,t,v,m,C,THREE.SubtractiveBlending,true);this.renderPass(j,t,v,m,C,THREE.NormalBlending,true)}}if(q&&q.min_filter!==THREE.NearestFilter&&q.min_filter!==THREE.LinearFilter){b.bindTexture(b.TEXTURE_2D,q.__webGLTexture);b.generateMipmap(b.TEXTURE_2D);b.bindTexture(b.TEXTURE_2D,null)}};this.initWebGLObjects=
function(f){function j(s,n,E,A){if(s[n]==undefined){f.__webGLObjects.push({buffer:E,object:A});s[n]=1}}var q,l,r,C,m,t,v;if(!f.__webGLObjects){f.__webGLObjects=[];f.__webGLObjectsMap={}}q=0;for(l=f.objects.length;q<l;q++){r=f.objects[q];m=r.geometry;if(f.__webGLObjectsMap[r.id]==undefined)f.__webGLObjectsMap[r.id]={};v=f.__webGLObjectsMap[r.id];if(r instanceof THREE.Mesh){for(C in m.geometryChunks){t=m.geometryChunks[C];if(!t.__webGLVertexBuffer){this.createMeshBuffers(t);this.initMeshBuffers(t,r);
m.__dirtyVertices=true;m.__dirtyElements=true;m.__dirtyUvs=true;m.__dirtyNormals=true;m.__dirtyTangents=true}if(m.__dirtyVertices||m.__dirtyElements||m.__dirtyUvs)this.setMeshBuffers(t,r,b.DYNAMIC_DRAW,m.__dirtyVertices,m.__dirtyElements,m.__dirtyUvs,m.__dirtyNormals,m.__dirtyTangents);j(v,C,t,r)}m.__dirtyVertices=false;m.__dirtyElements=false;m.__dirtyUvs=false;m.__dirtyNormals=false;m.__dirtyTangents=false}else if(r instanceof THREE.Line){if(!m.__webGLVertexBuffer){this.createLineBuffers(m);this.initLineBuffers(m);
m.__dirtyVertices=true;m.__dirtyElements=true}m.__dirtyVertices&&this.setLineBuffers(m,b.DYNAMIC_DRAW,m.__dirtyVertices,m.__dirtyElements);j(v,0,m,r);m.__dirtyVertices=false;m.__dirtyElements=false}else if(r instanceof THREE.ParticleSystem){m.__webGLVertexBuffer||this.createParticleBuffers(m);j(v,0,m,r)}}};this.removeObject=function(f,j){var q,l;for(q=f.__webGLObjects.length-1;q>=0;q--){l=f.__webGLObjects[q].object;j==l&&f.__webGLObjects.splice(q,1)}};this.setupMatrices=function(f,j){f.autoUpdateMatrix&&
f.updateMatrix();y.multiply(j.matrix,f.matrix);x.set(y.flatten());z=THREE.Matrix4.makeInvert3x3(y).transpose();J.set(z.m);K.set(f.matrix.flatten())};this.loadMatrices=function(f){b.uniformMatrix4fv(f.uniforms.viewMatrix,false,u);b.uniformMatrix4fv(f.uniforms.modelViewMatrix,false,x);b.uniformMatrix4fv(f.uniforms.projectionMatrix,false,H);b.uniformMatrix3fv(f.uniforms.normalMatrix,false,J);b.uniformMatrix4fv(f.uniforms.objectMatrix,false,K)};this.loadCamera=function(f,j){b.uniform3f(f.uniforms.cameraPosition,
j.position.x,j.position.y,j.position.z)};this.setBlending=function(f){switch(f){case THREE.AdditiveBlending:b.blendEquation(b.FUNC_ADD);b.blendFunc(b.ONE,b.ONE);break;case THREE.SubtractiveBlending:b.blendFunc(b.DST_COLOR,b.ZERO);break;default:b.blendEquation(b.FUNC_ADD);b.blendFunc(b.ONE,b.ONE_MINUS_SRC_ALPHA)}};this.setFaceCulling=function(f,j){if(f){!j||j=="ccw"?b.frontFace(b.CCW):b.frontFace(b.CW);if(f=="back")b.cullFace(b.BACK);else f=="front"?b.cullFace(b.FRONT):b.cullFace(b.FRONT_AND_BACK);
b.enable(b.CULL_FACE)}else b.disable(b.CULL_FACE)};this.supportsVertexTextures=function(){return b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)>0}};
THREE.Snippets={fog_pars_fragment:"#ifdef USE_FOG\nuniform vec3 fogColor;\n#ifdef FOG_EXP2\nuniform float fogDensity;\n#else\nuniform float fogNear;\nuniform float fogFar;\n#endif\n#endif",fog_fragment:"#ifdef USE_FOG\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#ifdef FOG_EXP2\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n#else\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n#endif\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), fogFactor );\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float reflectivity;\nuniform samplerCube env_map;\nuniform int combine;\n#endif",
envmap_fragment:"#ifdef USE_ENVMAP\ncubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );\nif ( combine == 1 ) {\ngl_FragColor = mix( gl_FragColor, cubeColor, reflectivity );\n} else {\ngl_FragColor = gl_FragColor * cubeColor;\n}\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float refraction_ratio;\nuniform bool useRefract;\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvec3 nWorld = mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal;\nif ( useRefract ) {\nvReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );\n} else {\nvReflect = reflect( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ) );\n}\n#endif",
map_pars_fragment:"#ifdef USE_MAP\nvarying vec2 vUv;\nuniform sampler2D map;\n#endif",map_pars_vertex:"#ifdef USE_MAP\nvarying vec2 vUv;\n#endif",map_fragment:"#ifdef USE_MAP\nmapColor = texture2D( map, vUv );\n#endif",map_vertex:"#ifdef USE_MAP\nvUv = uv;\n#endif",lights_pars_vertex:"uniform bool enableLighting;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n#ifdef PHONG\nvarying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];\n#endif\n#endif",
lights_vertex:"if ( !enableLighting ) {\nvLightWeighting = vec3( 1.0 );\n} else {\nvLightWeighting = ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nfloat directionalLightWeighting = max( dot( transformedNormal, normalize( lDirection.xyz ) ), 0.0 );\nvLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;\n}\n#endif\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 pointLightVector = normalize( lPosition.xyz - mvPosition.xyz );\nfloat pointLightWeighting = max( dot( transformedNormal, pointLightVector ), 0.0 );\nvLightWeighting += pointLightColor[ i ] * pointLightWeighting;\n#ifdef PHONG\nvPointLightVector[ i ] = pointLightVector;\n#endif\n}\n#endif\n}",
lights_pars_fragment:"#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nvarying vec3 vPointLightVector[ MAX_POINT_LIGHTS ];\n#endif\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",lights_fragment:"vec3 normal = normalize( vNormal );\nvec3 viewPosition = normalize( vViewPosition );\nvec4 mSpecular = vec4( specular, opacity );\n#if MAX_POINT_LIGHTS > 0\nvec4 pointDiffuse = vec4( 0.0 );\nvec4 pointSpecular = vec4( 0.0 );\nfor( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {\nvec3 pointVector = normalize( vPointLightVector[ i ] );\nvec3 pointHalfVector = normalize( vPointLightVector[ i ] + vViewPosition );\nfloat pointDotNormalHalf = dot( normal, pointHalfVector );\nfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\nfloat pointSpecularWeight = 0.0;\nif ( pointDotNormalHalf >= 0.0 )\npointSpecularWeight = pow( pointDotNormalHalf, shininess );\npointDiffuse += mColor * pointDiffuseWeight;\npointSpecular += mSpecular * pointSpecularWeight;\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec4 dirDiffuse = vec4( 0.0 );\nvec4 dirSpecular = vec4( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nvec3 dirHalfVector = normalize( lDirection.xyz + vViewPosition );\nfloat dirDotNormalHalf = dot( normal, dirHalfVector );\nfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\nfloat dirSpecularWeight = 0.0;\nif ( dirDotNormalHalf >= 0.0 )\ndirSpecularWeight = pow( dirDotNormalHalf, shininess );\ndirDiffuse += mColor * dirDiffuseWeight;\ndirSpecular += mSpecular * dirSpecularWeight;\n}\n#endif\nvec4 totalLight = vec4( ambient, opacity );\n#if MAX_DIR_LIGHTS > 0\ntotalLight += dirDiffuse + dirSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalLight += pointDiffuse + pointSpecular;\n#endif"};
THREE.UniformsLib={common:{color:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},map:{type:"t",value:0,texture:null},env_map:{type:"t",value:1,texture:null},useRefract:{type:"i",value:0},reflectivity:{type:"f",value:1},refraction_ratio:{type:"f",value:0.98},combine:{type:"i",value:0},fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},lights:{enableLighting:{type:"i",value:1},ambientLightColor:{type:"fv",
value:[]},directionalLightDirection:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},pointLightPosition:{type:"fv",value:[]},pointLightColor:{type:"fv",value:[]}}};
THREE.ShaderLib={depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3}},fragment_shader:"uniform float mNear;\nuniform float mFar;\nvoid main() {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat color = 1.0 - smoothstep( mNear, mFar, depth );\ngl_FragColor = vec4( vec3( color ), 1.0 );\n}",vertex_shader:"void main() {\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"},normal:{uniforms:{},fragment_shader:"varying vec3 vNormal;\nvoid main() {\ngl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, 1.0 );\n}",
vertex_shader:"varying vec3 vNormal;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvNormal = normalize( normalMatrix * normal );\ngl_Position = projectionMatrix * mvPosition;\n}"},basic:{uniforms:THREE.UniformsLib.common,fragment_shader:["uniform vec3 color;\nuniform float opacity;",THREE.Snippets.map_pars_fragment,THREE.Snippets.envmap_pars_fragment,THREE.Snippets.fog_pars_fragment,"void main() {\nvec4 mColor = vec4( color, opacity );\nvec4 mapColor = vec4( 1.0 );\nvec4 cubeColor = vec4( 1.0 );",
THREE.Snippets.map_fragment,"gl_FragColor = mColor * mapColor;",THREE.Snippets.envmap_fragment,THREE.Snippets.fog_fragment,"}"].join("\n"),vertex_shader:[THREE.Snippets.map_pars_vertex,THREE.Snippets.envmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.Snippets.map_vertex,THREE.Snippets.envmap_vertex,"gl_Position = projectionMatrix * mvPosition;\n}"].join("\n")},lambert:{uniforms:Uniforms.merge([THREE.UniformsLib.common,THREE.UniformsLib.lights]),fragment_shader:["uniform vec3 color;\nuniform float opacity;\nvarying vec3 vLightWeighting;",
THREE.Snippets.map_pars_fragment,THREE.Snippets.envmap_pars_fragment,THREE.Snippets.fog_pars_fragment,"void main() {\nvec4 mColor = vec4( color, opacity );\nvec4 mapColor = vec4( 1.0 );\nvec4 cubeColor = vec4( 1.0 );",THREE.Snippets.map_fragment,"gl_FragColor = mColor * mapColor * vec4( vLightWeighting, 1.0 );",THREE.Snippets.envmap_fragment,THREE.Snippets.fog_fragment,"}"].join("\n"),vertex_shader:["varying vec3 vLightWeighting;",THREE.Snippets.map_pars_vertex,THREE.Snippets.envmap_pars_vertex,
THREE.Snippets.lights_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.Snippets.map_vertex,THREE.Snippets.envmap_vertex,"vec3 transformedNormal = normalize( normalMatrix * normal );",THREE.Snippets.lights_vertex,"gl_Position = projectionMatrix * mvPosition;\n}"].join("\n")},phong:{uniforms:Uniforms.merge([THREE.UniformsLib.common,THREE.UniformsLib.lights,{ambient:{type:"c",value:new THREE.Color(328965)},specular:{type:"c",value:new THREE.Color(1118481)},
shininess:{type:"f",value:30}}]),fragment_shader:["uniform vec3 color;\nuniform float opacity;\nuniform vec3 ambient;\nuniform vec3 specular;\nuniform float shininess;\nvarying vec3 vLightWeighting;",THREE.Snippets.map_pars_fragment,THREE.Snippets.envmap_pars_fragment,THREE.Snippets.fog_pars_fragment,THREE.Snippets.lights_pars_fragment,"void main() {\nvec4 mColor = vec4( color, opacity );\nvec4 mapColor = vec4( 1.0 );\nvec4 cubeColor = vec4( 1.0 );",THREE.Snippets.map_fragment,THREE.Snippets.lights_fragment,
"gl_FragColor = mapColor * totalLight * vec4( vLightWeighting, 1.0 );",THREE.Snippets.envmap_fragment,THREE.Snippets.fog_fragment,"}"].join("\n"),vertex_shader:["#define PHONG\nvarying vec3 vLightWeighting;\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",THREE.Snippets.map_pars_vertex,THREE.Snippets.envmap_pars_vertex,THREE.Snippets.lights_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.Snippets.map_vertex,THREE.Snippets.envmap_vertex,"#ifndef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\n#endif\nvViewPosition = cameraPosition - mPosition.xyz;\nvec3 transformedNormal = normalize( normalMatrix * normal );\nvNormal = transformedNormal;",
THREE.Snippets.lights_vertex,"gl_Position = projectionMatrix * mvPosition;\n}"].join("\n")}};THREE.RenderableObject=function(){this.z=this.object=null};THREE.RenderableFace3=function(){this.z=null;this.v1=new THREE.Vertex;this.v2=new THREE.Vertex;this.v3=new THREE.Vertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[];this.faceMaterials=this.meshMaterials=null;this.overdraw=false;this.uvs=[null,null,null]};
THREE.RenderableParticle=function(){this.rotation=this.z=this.y=this.x=null;this.scale=new THREE.Vector2;this.materials=null};THREE.RenderableLine=function(){this.z=null;this.v1=new THREE.Vertex;this.v2=new THREE.Vertex;this.materials=null};

View File

@ -0,0 +1,126 @@
// BinaryReader
// Refactored by Vjeux <vjeuxx@gmail.com>
// http://blog.vjeux.com/2010/javascript/javascript-binary-reader.html
// Original
//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/classes/binary-parser [rev. #1]
BinaryReader = function (data) {
this._buffer = data;
this._pos = 0;
};
BinaryReader.prototype = {
/* Public */
readInt8: function (){ return this._decodeInt(8, true); },
readUInt8: function (){ return this._decodeInt(8, false); },
readInt16: function (){ return this._decodeInt(16, true); },
readUInt16: function (){ return this._decodeInt(16, false); },
readInt32: function (){ return this._decodeInt(32, true); },
readUInt32: function (){ return this._decodeInt(32, false); },
readFloat: function (){ return this._decodeFloat(23, 8); },
readDouble: function (){ return this._decodeFloat(52, 11); },
readChar: function () { return this.readString(1); },
readString: function (length) {
this._checkSize(length * 8);
var result = this._buffer.substr(this._pos, length);
this._pos += length;
return result;
},
seek: function (pos) {
this._pos = pos;
this._checkSize(0);
},
getPosition: function () {
return this._pos;
},
getSize: function () {
return this._buffer.length;
},
/* Private */
_decodeFloat: function(precisionBits, exponentBits){
var length = precisionBits + exponentBits + 1;
var size = length >> 3;
this._checkSize(length);
var bias = Math.pow(2, exponentBits - 1) - 1;
var signal = this._readBits(precisionBits + exponentBits, 1, size);
var exponent = this._readBits(precisionBits, exponentBits, size);
var significand = 0;
var divisor = 2;
// var curByte = length + (-precisionBits >> 3) - 1;
var curByte = 0;
do {
var byteValue = this._readByte(++curByte, size);
var startBit = precisionBits % 8 || 8;
var mask = 1 << startBit;
while (mask >>= 1) {
if (byteValue & mask) {
significand += 1 / divisor;
}
divisor *= 2;
}
} while (precisionBits -= startBit);
this._pos += size;
return exponent == (bias << 1) + 1 ? significand ? NaN : signal ? -Infinity : +Infinity
: (1 + signal * -2) * (exponent || significand ? !exponent ? Math.pow(2, -bias + 1) * significand
: Math.pow(2, exponent - bias) * (1 + significand) : 0);
},
_decodeInt: function(bits, signed){
var x = this._readBits(0, bits, bits / 8), max = Math.pow(2, bits);
var result = signed && x >= max / 2 ? x - max : x;
this._pos += bits / 8;
return result;
},
//shl fix: Henri Torgemane ~1996 (compressed by Jonas Raoni)
_shl: function (a, b){
for (++b; --b; a = ((a %= 0x7fffffff + 1) & 0x40000000) == 0x40000000 ? a * 2 : (a - 0x40000000) * 2 + 0x7fffffff + 1);
return a;
},
_readByte: function (i, size) {
return this._buffer.charCodeAt(this._pos + size - i - 1) & 0xff;
},
_readBits: function (start, length, size) {
var offsetLeft = (start + length) % 8;
var offsetRight = start % 8;
var curByte = size - (start >> 3) - 1;
var lastByte = size + (-(start + length) >> 3);
var diff = curByte - lastByte;
var sum = (this._readByte(curByte, size) >> offsetRight) & ((1 << (diff ? 8 - offsetRight : length)) - 1);
if (diff && offsetLeft) {
sum += (this._readByte(lastByte++, size) & ((1 << offsetLeft) - 1)) << (diff-- << 3) - offsetRight;
}
while (diff) {
sum += this._shl(this._readByte(lastByte++, size), (diff-- << 3) - offsetRight);
}
return sum;
},
_checkSize: function (neededBits) {
if (!(this._pos + Math.ceil(neededBits / 8) < this._buffer.length)) {
throw new Error("Index out of bound");
}
}
};

View File

@ -0,0 +1,62 @@
/**
* @author mr.doob / http://mrdoob.com/
* based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as
*/
var Plane = function ( width, height, segments_width, segments_height ) {
THREE.Geometry.call( this );
var ix, iy,
width_half = width / 2,
height_half = height / 2,
gridX = segments_width || 1,
gridY = segments_height || 1,
gridX1 = gridX + 1,
gridY1 = gridY + 1,
segment_width = width / gridX,
segment_height = height / gridY;
for( iy = 0; iy < gridY1; iy++ ) {
for( ix = 0; ix < gridX1; ix++ ) {
var x = ix * segment_width - width_half;
var y = iy * segment_height - height_half;
this.vertices.push( new THREE.Vertex( new THREE.Vector3( x, - y, 0 ) ) );
}
}
for( iy = 0; iy < gridY; iy++ ) {
for( ix = 0; ix < gridX; ix++ ) {
var a = ix + gridX1 * iy;
var b = ix + gridX1 * ( iy + 1 );
var c = ( ix + 1 ) + gridX1 * ( iy + 1 );
var d = ( ix + 1 ) + gridX1 * iy;
this.faces.push( new THREE.Face4( a, b, c, d ) );
this.uvs.push( [
new THREE.UV( ix / gridX, iy / gridY ),
new THREE.UV( ix / gridX, ( iy + 1 ) / gridY ),
new THREE.UV( ( ix + 1 ) / gridX, ( iy + 1 ) / gridY ),
new THREE.UV( ( ix + 1 ) / gridX, iy / gridY )
] );
}
}
this.computeCentroids();
this.computeFaceNormals();
this.sortFacesByMaterial();
};
Plane.prototype = new THREE.Geometry();
Plane.prototype.constructor = Plane;

View File

@ -0,0 +1,2 @@
// stats.js r5 - http://github.com/mrdoob/stats.js
var Stats=function(){var j=0,u=2,r,C=0,E=new Date().getTime(),w=E,f=E,m=0,e=1000,i=0,F,q,c,d,B,k=0,G=1000,a=0,A,t,p,D,l,v=0,o=1000,s=0,h,n,z,g,b,y={fps:{bg:{r:16,g:16,b:48},fg:{r:0,g:255,b:255}},ms:{bg:{r:16,g:48,b:16},fg:{r:0,g:255,b:0}},mem:{bg:{r:48,g:16,b:26},fg:{r:255,g:0,b:128}}};r=document.createElement("div");r.style.fontFamily="Helvetica, Arial, sans-serif";r.style.textAlign="left";r.style.fontSize="9px";r.style.opacity="0.9";r.style.width="80px";r.style.cursor="pointer";r.addEventListener("click",H,false);F=document.createElement("div");F.style.backgroundColor="rgb("+Math.floor(y.fps.bg.r/2)+","+Math.floor(y.fps.bg.g/2)+","+Math.floor(y.fps.bg.b/2)+")";F.style.padding="2px 0px 3px 0px";r.appendChild(F);q=document.createElement("div");q.innerHTML="<strong>FPS</strong>";q.style.color="rgb("+y.fps.fg.r+","+y.fps.fg.g+","+y.fps.fg.b+")";q.style.margin="0px 0px 1px 3px";F.appendChild(q);c=document.createElement("canvas");c.width=74;c.height=30;c.style.display="block";c.style.marginLeft="3px";F.appendChild(c);d=c.getContext("2d");d.fillStyle="rgb("+y.fps.bg.r+","+y.fps.bg.g+","+y.fps.bg.b+")";d.fillRect(0,0,c.width,c.height);B=d.getImageData(0,0,c.width,c.height);A=document.createElement("div");A.style.backgroundColor="rgb("+Math.floor(y.ms.bg.r/2)+","+Math.floor(y.ms.bg.g/2)+","+Math.floor(y.ms.bg.b/2)+")";A.style.padding="2px 0px 3px 0px";A.style.display="none";r.appendChild(A);t=document.createElement("div");t.innerHTML="<strong>MS</strong>";t.style.color="rgb("+y.ms.fg.r+","+y.ms.fg.g+","+y.ms.fg.b+")";t.style.margin="0px 0px 1px 3px";A.appendChild(t);p=document.createElement("canvas");p.width=74;p.height=30;p.style.display="block";p.style.marginLeft="3px";A.appendChild(p);D=p.getContext("2d");D.fillStyle="rgb("+y.ms.bg.r+","+y.ms.bg.g+","+y.ms.bg.b+")";D.fillRect(0,0,p.width,p.height);l=D.getImageData(0,0,p.width,p.height);try{if(webkitPerformance&&webkitPerformance.memory.totalJSHeapSize){u=3}}catch(x){}h=document.createElement("div");h.style.backgroundColor="rgb("+Math.floor(y.mem.bg.r/2)+","+Math.floor(y.mem.bg.g/2)+","+Math.floor(y.mem.bg.b/2)+")";h.style.padding="2px 0px 3px 0px";h.style.display="none";r.appendChild(h);n=document.createElement("div");n.innerHTML="<strong>MEM</strong>";n.style.color="rgb("+y.mem.fg.r+","+y.mem.fg.g+","+y.mem.fg.b+")";n.style.margin="0px 0px 1px 3px";h.appendChild(n);z=document.createElement("canvas");z.width=74;z.height=30;z.style.display="block";z.style.marginLeft="3px";h.appendChild(z);g=z.getContext("2d");g.fillStyle="#301010";g.fillRect(0,0,z.width,z.height);b=g.getImageData(0,0,z.width,z.height);function I(N,M,K){var J,O,L;for(O=0;O<30;O++){for(J=0;J<73;J++){L=(J+O*74)*4;N[L]=N[L+4];N[L+1]=N[L+5];N[L+2]=N[L+6]}}for(O=0;O<30;O++){L=(73+O*74)*4;if(O<M){N[L]=y[K].bg.r;N[L+1]=y[K].bg.g;N[L+2]=y[K].bg.b}else{N[L]=y[K].fg.r;N[L+1]=y[K].fg.g;N[L+2]=y[K].fg.b}}}function H(){j++;j==u?j=0:j;F.style.display="none";A.style.display="none";h.style.display="none";switch(j){case 0:F.style.display="block";break;case 1:A.style.display="block";break;case 2:h.style.display="block";break}}return{domElement:r,update:function(){C++;E=new Date().getTime();k=E-w;G=Math.min(G,k);a=Math.max(a,k);I(l.data,Math.min(30,30-(k/200)*30),"ms");t.innerHTML="<strong>"+k+" MS</strong> ("+G+"-"+a+")";D.putImageData(l,0,0);w=E;if(E>f+1000){m=Math.round((C*1000)/(E-f));e=Math.min(e,m);i=Math.max(i,m);I(B.data,Math.min(30,30-(m/100)*30),"fps");q.innerHTML="<strong>"+m+" FPS</strong> ("+e+"-"+i+")";d.putImageData(B,0,0);if(u==3){v=webkitPerformance.memory.usedJSHeapSize*9.54e-7;o=Math.min(o,v);s=Math.max(s,v);I(b.data,Math.min(30,30-(v/2)),"mem");n.innerHTML="<strong>"+Math.round(v)+" MEM</strong> ("+Math.round(o)+"-"+Math.round(s)+")";g.putImageData(b,0,0)}f=E;C=0}}}};

View File

@ -0,0 +1,318 @@
Thingiloader = function(event) {
// Code from https://developer.mozilla.org/En/Using_XMLHttpRequest#Receiving_binary_data
this.load_binary_resource = function(url) {
var req = new XMLHttpRequest();
req.open('GET', url, false);
// The following line says we want to receive data as Binary and not as Unicode
req.overrideMimeType('text/plain; charset=x-user-defined');
req.send(null);
if (req.status != 200) return '';
return req.responseText;
};
this.loadSTL = function(url) {
var looksLikeBinary = function(reader) {
// STL files don't specify a way to distinguish ASCII from binary.
// The usual way is checking for "solid" at the start of the file --
// but Thingiverse has seen at least one binary STL file in the wild
// that breaks this.
// The approach here is different: binary STL files contain a triangle
// count early in the file. If this correctly predicts the file's length,
// it is most probably a binary STL file.
reader.seek(80); // skip the header
var count = reader.readUInt32();
var predictedSize = 80 /* header */ + 4 /* count */ + 50 * count;
return reader.getSize() == predictedSize;
};
workerFacadeMessage({'status':'message', 'content':'Downloading ' + url});
var file = this.load_binary_resource(url);
var reader = new BinaryReader(file);
if (looksLikeBinary(reader)) {
this.loadSTLBinary(reader);
} else {
this.loadSTLString(file);
}
};
this.loadOBJ = function(url) {
workerFacadeMessage({'status':'message', 'content':'Downloading ' + url});
var file = this.load_binary_resource(url);
this.loadOBJString(file);
};
this.loadJSON = function(url) {
workerFacadeMessage({'status':'message', 'content':'Downloading ' + url});
var file = this.load_binary_resource(url);
this.loadJSONString(file);
};
this.loadPLY = function(url) {
workerFacadeMessage({'status':'message', 'content':'Downloading ' + url});
var file = this.load_binary_resource(url);
if (file.match(/format ascii/i)) {
this.loadPLYString(file);
} else {
this.loadPLYBinary(file);
}
};
this.loadSTLString = function(STLString) {
workerFacadeMessage({'status':'message', 'content':'Parsing STL String...'});
workerFacadeMessage({'status':'complete', 'content':this.ParseSTLString(STLString)});
};
this.loadSTLBinary = function(STLBinary) {
workerFacadeMessage({'status':'message', 'content':'Parsing STL Binary...'});
workerFacadeMessage({'status':'complete', 'content':this.ParseSTLBinary(STLBinary)});
};
this.loadOBJString = function(OBJString) {
workerFacadeMessage({'status':'message', 'content':'Parsing OBJ String...'});
workerFacadeMessage({'status':'complete', 'content':this.ParseOBJString(OBJString)});
};
this.loadJSONString = function(JSONString) {
workerFacadeMessage({'status':'message', 'content':'Parsing JSON String...'});
workerFacadeMessage({'status':'complete', 'content':eval(JSONString)});
};
this.loadPLYString = function(PLYString) {
workerFacadeMessage({'status':'message', 'content':'Parsing PLY String...'});
workerFacadeMessage({'status':'complete_points', 'content':this.ParsePLYString(PLYString)});
};
this.loadPLYBinary = function(PLYBinary) {
workerFacadeMessage({'status':'message', 'content':'Parsing PLY Binary...'});
workerFacadeMessage({'status':'complete_points', 'content':this.ParsePLYBinary(PLYBinary)});
};
this.ParsePLYString = function(input) {
var properties = [];
var vertices = [];
var colors = [];
var vertex_count = 0;
var header = /ply\n([\s\S]+)\nend_header/ig.exec(input)[1];
var data = /end_header\n([\s\S]+)$/ig.exec(input)[1];
// workerFacadeMessage({'status':'message', 'content':'header:\n' + header});
// workerFacadeMessage({'status':'message', 'content':'data:\n' + data});
header_parts = header.split("\n");
for (i in header_parts) {
if (/element vertex/i.test(header_parts[i])) {
vertex_count = /element vertex (\d+)/i.exec(header_parts[i])[1];
} else if (/property/i.test(header_parts[i])) {
properties.push(/property (.*) (.*)/i.exec(header_parts[i])[2]);
}
}
// workerFacadeMessage({'status':'message', 'content':'properties: ' + properties});
data_parts = data.split("\n");
for (i in data_parts) {
data_line = data_parts[i];
data_line_parts = data_line.split(" ");
vertices.push([
parseFloat(data_line_parts[properties.indexOf("x")]),
parseFloat(data_line_parts[properties.indexOf("y")]),
parseFloat(data_line_parts[properties.indexOf("z")])
]);
colors.push([
parseInt(data_line_parts[properties.indexOf("red")]),
parseInt(data_line_parts[properties.indexOf("green")]),
parseInt(data_line_parts[properties.indexOf("blue")])
]);
}
// workerFacadeMessage({'status':'message', 'content':'vertices: ' + vertices});
return [vertices, colors];
};
this.ParsePLYBinary = function(input) {
return false;
};
this.ParseSTLBinary = function(input) {
// Skip the header.
input.seek(80);
// Load the number of vertices.
var count = input.readUInt32();
// During the parse loop we maintain the following data structures:
var vertices = []; // Append-only list of all unique vertices.
var vert_hash = {}; // Mapping from vertex to index in 'vertices', above.
var faces = []; // List of triangle descriptions, each a three-element
// list of indices in 'vertices', above.
for (var i = 0; i < count; i++) {
if (i % 100 == 0) {
workerFacadeMessage({
'status':'message',
'content':'Parsing ' + (i+1) + ' of ' + count + ' polygons...'
});
workerFacadeMessage({
'status':'progress',
'content':parseInt(i / count * 100) + '%'
});
}
// Skip the normal (3 single-precision floats)
input.seek(input.getPosition() + 12);
var face_indices = [];
for (var x = 0; x < 3; x++) {
var vertex = [input.readFloat(), input.readFloat(), input.readFloat()];
var vertexIndex = vert_hash[vertex];
if (vertexIndex == null) {
vertexIndex = vertices.length;
vertices.push(vertex);
vert_hash[vertex] = vertexIndex;
}
face_indices.push(vertexIndex);
}
faces.push(face_indices);
// Skip the "attribute" field (unused in common models)
input.readUInt16();
}
return [vertices, faces];
};
// build stl's vertex and face arrays
this.ParseSTLString = function(STLString) {
var vertexes = [];
var faces = [];
var face_vertexes = [];
var vert_hash = {}
// console.log(STLString);
// strip out extraneous stuff
STLString = STLString.replace(/\r/, "\n");
STLString = STLString.replace(/^solid[^\n]*/, "");
STLString = STLString.replace(/\n/g, " ");
STLString = STLString.replace(/facet normal /g,"");
STLString = STLString.replace(/outer loop/g,"");
STLString = STLString.replace(/vertex /g,"");
STLString = STLString.replace(/endloop/g,"");
STLString = STLString.replace(/endfacet/g,"");
STLString = STLString.replace(/endsolid[^\n]*/, "");
STLString = STLString.replace(/\s+/g, " ");
STLString = STLString.replace(/^\s+/, "");
// console.log(STLString);
var facet_count = 0;
var block_start = 0;
var points = STLString.split(" ");
workerFacadeMessage({'status':'message', 'content':'Parsing vertices...'});
for (var i=0; i<points.length/12-1; i++) {
if ((i % 100) == 0) {
workerFacadeMessage({'status':'progress', 'content':parseInt(i / (points.length/12-1) * 100) + '%'});
}
var face_indices = [];
for (var x=0; x<3; x++) {
var vertex = [parseFloat(points[block_start+x*3+3]), parseFloat(points[block_start+x*3+4]), parseFloat(points[block_start+x*3+5])];
var vertexIndex = vert_hash[vertex];
if (vertexIndex == null) {
vertexIndex = vertexes.length;
vertexes.push(vertex);
vert_hash[vertex] = vertexIndex;
}
face_indices.push(vertexIndex);
}
faces.push(face_indices);
block_start = block_start + 12;
}
return [vertexes, faces];
};
this.ParseOBJString = function(OBJString) {
var vertexes = [];
var faces = [];
var lines = OBJString.split("\n");
// var normal_position = 0;
for (var i=0; i<lines.length; i++) {
workerFacadeMessage({'status':'progress', 'content':parseInt(i / lines.length * 100) + '%'});
line_parts = lines[i].replace(/\s+/g, " ").split(" ");
if (line_parts[0] == "v") {
vertexes.push([parseFloat(line_parts[1]), parseFloat(line_parts[2]), parseFloat(line_parts[3])]);
} else if (line_parts[0] == "f") {
faces.push([parseFloat(line_parts[1].split("/")[0])-1, parseFloat(line_parts[2].split("/")[0])-1, parseFloat(line_parts[3].split("/")[0]-1), 0])
}
}
return [vertexes, faces];
};
switch(event.data.cmd) {
case "loadSTL":
this.loadSTL(event.data.param);
break;
case "loadSTLString":
this.loadSTLString(event.data.param);
break;
case "loadSTLBinary":
this.loadSTLBinary(event.data.param);
break;
case "loadOBJ":
this.loadOBJ(event.data.param);
break;
case "loadOBJString":
this.loadOBJString(event.data.param);
break;
case "loadJSON":
this.loadJSON(event.data.param);
break;
case "loadPLY":
this.loadPLY(event.data.param);
break;
case "loadPLYString":
this.loadPLYString(event.data.param);
break;
case "loadPLYBinary":
this.loadPLYBinary(event.data.param);
break;
}
};
if (typeof(window) === "undefined") {
onmessage = Thingiloader;
workerFacadeMessage = postMessage;
importScripts('binaryReader.js');
} else {
workerFacadeMessage = WorkerFacade.add(thingiurlbase + "/thingiloader.js", Thingiloader);
}

View File

@ -0,0 +1,898 @@
Thingiview = function(containerId) {
scope = this;
this.containerId = containerId;
var container = document.getElementById(containerId);
// var stats = null;
var camera = null;
var scene = null;
var renderer = null;
var object = null;
var plane = null;
var ambientLight = null;
var directionalLight = null;
var pointLight = null;
var targetXRotation = 0;
var targetXRotationOnMouseDown = 0;
var mouseX = 0;
var mouseXOnMouseDown = 0;
var targetYRotation = 0;
var targetYRotationOnMouseDown = 0;
var mouseY = 0;
var mouseYOnMouseDown = 0;
var mouseDown = false;
var mouseOver = false;
var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2
var view = null;
var infoMessage = null;
var progressBar = null;
var alertBox = null;
var timer = null;
var rotateTimer = null;
var rotateListener = null;
var wasRotating = null;
var cameraView = 'diagonal';
var cameraZoom = 0;
var rotate = false;
var backgroundColor = '#606060';
var objectMaterial = 'solid';
var objectColor = 0xffffff;
var showPlane = true;
var isWebGl = false;
if (document.defaultView && document.defaultView.getComputedStyle) {
var width = parseFloat(document.defaultView.getComputedStyle(container,null).getPropertyValue('width'));
var height = parseFloat(document.defaultView.getComputedStyle(container,null).getPropertyValue('height'));
} else {
var width = parseFloat(container.currentStyle.width);
var height = parseFloat(container.currentStyle.height);
}
var geometry;
this.initScene = function() {
container.style.position = 'relative';
container.innerHTML = '';
camera = new THREE.Camera(45, width/ height, 1, 100000);
camera.updateMatrix();
scene = new THREE.Scene();
ambientLight = new THREE.AmbientLight(0x202020);
scene.addLight(ambientLight);
directionalLight = new THREE.DirectionalLight(0xffffff, 0.75);
directionalLight.position.x = 1;
directionalLight.position.y = 1;
directionalLight.position.z = 2;
directionalLight.position.normalize();
scene.addLight(directionalLight);
pointLight = new THREE.PointLight(0xffffff, 0.3);
pointLight.position.x = 0;
pointLight.position.y = -25;
pointLight.position.z = 10;
scene.addLight(pointLight);
progressBar = document.createElement('div');
progressBar.style.position = 'absolute';
progressBar.style.top = '0px';
progressBar.style.left = '0px';
progressBar.style.backgroundColor = 'red';
progressBar.style.padding = '5px';
progressBar.style.display = 'none';
progressBar.style.overflow = 'visible';
progressBar.style.whiteSpace = 'nowrap';
progressBar.style.zIndex = 100;
container.appendChild(progressBar);
alertBox = document.createElement('div');
alertBox.id = 'alertBox';
alertBox.style.position = 'absolute';
alertBox.style.top = '25%';
alertBox.style.left = '25%';
alertBox.style.width = '50%';
alertBox.style.height = '50%';
alertBox.style.backgroundColor = '#dddddd';
alertBox.style.padding = '10px';
// alertBox.style.overflowY = 'scroll';
alertBox.style.display = 'none';
alertBox.style.zIndex = 100;
container.appendChild(alertBox);
// load a blank object
// this.loadSTLString('');
if (showPlane) {
loadPlaneGeometry();
}
this.setCameraView(cameraView);
this.setObjectMaterial(objectMaterial);
testCanvas = document.createElement('canvas');
try {
if (testCanvas.getContext('experimental-webgl')) {
// showPlane = false;
isWebGl = true;
renderer = new THREE.WebGLRenderer();
// renderer = new THREE.CanvasRenderer();
} else {
renderer = new THREE.CanvasRenderer();
}
} catch(e) {
renderer = new THREE.CanvasRenderer();
// log("failed webgl detection");
}
// renderer.setSize(container.innerWidth, container.innerHeight);
renderer.setSize(width, height);
renderer.domElement.style.backgroundColor = backgroundColor;
container.appendChild(renderer.domElement);
// stats = new Stats();
// stats.domElement.style.position = 'absolute';
// stats.domElement.style.top = '0px';
// container.appendChild(stats.domElement);
// TODO: figure out how to get the render window to resize when window resizes
// window.addEventListener('resize', onContainerResize(), false);
// container.addEventListener('resize', onContainerResize(), false);
// renderer.domElement.addEventListener('mousemove', onRendererMouseMove, false);
window.addEventListener('mousemove', onRendererMouseMove, false);
renderer.domElement.addEventListener('mouseover', onRendererMouseOver, false);
renderer.domElement.addEventListener('mouseout', onRendererMouseOut, false);
renderer.domElement.addEventListener('mousedown', onRendererMouseDown, false);
// renderer.domElement.addEventListener('mouseup', onRendererMouseUp, false);
window.addEventListener('mouseup', onRendererMouseUp, false);
renderer.domElement.addEventListener('touchstart', onRendererTouchStart, false);
renderer.domElement.addEventListener('touchend', onRendererTouchEnd, false);
renderer.domElement.addEventListener('touchmove', onRendererTouchMove, false);
renderer.domElement.addEventListener('DOMMouseScroll', onRendererScroll, false);
renderer.domElement.addEventListener('mousewheel', onRendererScroll, false);
renderer.domElement.addEventListener('gesturechange', onRendererGestureChange, false);
}
// FIXME
// onContainerResize = function(event) {
// width = parseFloat(document.defaultView.getComputedStyle(container,null).getPropertyValue('width'));
// height = parseFloat(document.defaultView.getComputedStyle(container,null).getPropertyValue('height'));
//
// // log("resized width: " + width + ", height: " + height);
//
// if (renderer) {
// renderer.setSize(width, height);
// camera.projectionMatrix = THREE.Matrix4.makePerspective(70, width / height, 1, 10000);
// sceneLoop();
// }
// };
onRendererScroll = function(event) {
event.preventDefault();
var rolled = 0;
if (event.wheelDelta === undefined) {
// Firefox
// The measurement units of the detail and wheelDelta properties are different.
rolled = -40 * event.detail;
} else {
rolled = event.wheelDelta;
}
if (rolled > 0) {
// up
scope.setCameraZoom(+10);
} else {
// down
scope.setCameraZoom(-10);
}
}
onRendererGestureChange = function(event) {
event.preventDefault();
if (event.scale > 1) {
scope.setCameraZoom(+5);
} else {
scope.setCameraZoom(-5);
}
}
onRendererMouseOver = function(event) {
mouseOver = true;
// targetRotation = object.rotation.z;
if (timer == null) {
// log('starting loop');
timer = setInterval(sceneLoop, 1000/60);
}
}
onRendererMouseDown = function(event) {
// log("down");
event.preventDefault();
mouseDown = true;
if(scope.getRotation()){
wasRotating = true;
scope.setRotation(false);
} else {
wasRotating = false;
}
mouseXOnMouseDown = event.clientX - windowHalfX;
mouseYOnMouseDown = event.clientY - windowHalfY;
targetXRotationOnMouseDown = targetXRotation;
targetYRotationOnMouseDown = targetYRotation;
}
onRendererMouseMove = function(event) {
// log("move");
if (mouseDown) {
mouseX = event.clientX - windowHalfX;
// targetXRotation = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.02;
xrot = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.02;
mouseY = event.clientY - windowHalfY;
// targetYRotation = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.02;
yrot = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.02;
targetXRotation = xrot;
targetYRotation = yrot;
}
}
onRendererMouseUp = function(event) {
// log("up");
if (mouseDown) {
mouseDown = false;
if (!mouseOver) {
clearInterval(timer);
timer = null;
}
if (wasRotating) {
scope.setRotation(true);
}
}
}
onRendererMouseOut = function(event) {
if (!mouseDown) {
clearInterval(timer);
timer = null;
}
mouseOver = false;
}
onRendererTouchStart = function(event) {
targetXRotation = object.rotation.z;
targetYRotation = object.rotation.x;
timer = setInterval(sceneLoop, 1000/60);
if (event.touches.length == 1) {
event.preventDefault();
mouseXOnMouseDown = event.touches[0].pageX - windowHalfX;
targetXRotationOnMouseDown = targetXRotation;
mouseYOnMouseDown = event.touches[0].pageY - windowHalfY;
targetYRotationOnMouseDown = targetYRotation;
}
}
onRendererTouchEnd = function(event) {
clearInterval(timer);
timer = null;
// targetXRotation = object.rotation.z;
// targetYRotation = object.rotation.x;
}
onRendererTouchMove = function(event) {
if (event.touches.length == 1) {
event.preventDefault();
mouseX = event.touches[0].pageX - windowHalfX;
targetXRotation = targetXRotationOnMouseDown + (mouseX - mouseXOnMouseDown) * 0.05;
mouseY = event.touches[0].pageY - windowHalfY;
targetYRotation = targetYRotationOnMouseDown + (mouseY - mouseYOnMouseDown) * 0.05;
}
}
sceneLoop = function() {
if (object) {
// if (view == 'bottom') {
// if (showPlane) {
// plane.rotation.z = object.rotation.z -= (targetRotation + object.rotation.z) * 0.05;
// } else {
// object.rotation.z -= (targetRotation + object.rotation.z) * 0.05;
// }
// } else {
// if (showPlane) {
// plane.rotation.z = object.rotation.z += (targetRotation - object.rotation.z) * 0.05;
// } else {
// object.rotation.z += (targetRotation - object.rotation.z) * 0.05;
// }
// }
if (showPlane) {
plane.rotation.z = object.rotation.z = (targetXRotation - object.rotation.z) * 0.2;
plane.rotation.x = object.rotation.x = (targetYRotation - object.rotation.x) * 0.2;
} else {
object.rotation.z = (targetXRotation - object.rotation.z) * 0.2;
object.rotation.x = (targetYRotation - object.rotation.x) * 0.2;
}
// log(object.rotation.x);
camera.updateMatrix();
object.updateMatrix();
if (showPlane) {
plane.updateMatrix();
}
renderer.render(scene, camera);
// stats.update();
}
}
rotateLoop = function() {
// targetRotation += 0.01;
targetXRotation += 0.05;
sceneLoop();
}
this.getShowPlane = function(){
return showPlane;
}
this.setShowPlane = function(show) {
showPlane = show;
if (show) {
if (scene && !plane) {
loadPlaneGeometry();
}
plane.material[0].opacity = 1;
// plane.updateMatrix();
} else {
if (scene && plane) {
// alert(plane.material[0].opacity);
plane.material[0].opacity = 0;
// plane.updateMatrix();
}
}
sceneLoop();
}
this.getRotation = function() {
return rotateTimer !== null;
}
this.resetRotation = function () {
if (rotate) {
this.setRotation(false);
this.setRotation(true);
}
}
this.setRotation = function(rotate) {
rotation = rotate;
if (rotate) {
rotateTimer = setInterval(rotateLoop, 1000/60);
} else {
clearInterval(rotateTimer);
rotateTimer = null;
}
scope.onSetRotation();
}
this.onSetRotation = function(callback) {
if(callback === undefined){
if(rotateListener !== null){
try{
rotateListener(scope.getRotation());
} catch(ignored) {}
}
} else {
rotateListener = callback;
}
}
this.setCameraView = function(dir) {
cameraView = dir;
targetXRotation = 0;
targetYRotation = 0;
if (object) {
object.rotation.x = 0;
object.rotation.y = 0;
object.rotation.z = 0;
}
if (showPlane && object) {
plane.rotation.x = object.rotation.x;
plane.rotation.y = object.rotation.y;
plane.rotation.z = object.rotation.z;
}
if (dir == 'top') {
// camera.position.y = 0;
// camera.position.z = 100;
// camera.target.position.z = 0;
if (showPlane) {
plane.flipSided = false;
}
} else if (dir == 'side') {
// camera.position.y = -70;
// camera.position.z = 70;
// camera.target.position.z = 0;
targetYRotation = -4.5;
if (showPlane) {
plane.flipSided = false;
}
} else if (dir == 'bottom') {
// camera.position.y = 0;
// camera.position.z = -100;
// camera.target.position.z = 0;
if (showPlane) {
plane.flipSided = true;
}
} else {
// camera.position.y = -70;
// camera.position.z = 70;
// camera.target.position.z = 0;
if (showPlane) {
plane.flipSided = false;
}
}
mouseX = targetXRotation;
mouseXOnMouseDown = targetXRotation;
mouseY = targetYRotation;
mouseYOnMouseDown = targetYRotation;
scope.centerCamera();
sceneLoop();
}
this.setCameraZoom = function(factor) {
cameraZoom = factor;
if (cameraView == 'bottom') {
if (camera.position.z + factor > 0) {
factor = 0;
}
} else {
if (camera.position.z - factor < 0) {
factor = 0;
}
}
if (cameraView == 'top') {
camera.position.z -= factor;
} else if (cameraView == 'bottom') {
camera.position.z += factor;
} else if (cameraView == 'side') {
camera.position.y += factor;
camera.position.z -= factor;
} else {
camera.position.y += factor;
camera.position.z -= factor;
}
sceneLoop();
}
this.getObjectMaterial = function() {
return objectMaterial;
}
this.setObjectMaterial = function(type) {
objectMaterial = type;
loadObjectGeometry();
}
this.setBackgroundColor = function(color) {
backgroundColor = color
if (renderer) {
renderer.domElement.style.backgroundColor = color;
}
}
this.setObjectColor = function(color) {
objectColor = parseInt(color.replace(/\#/g, ''), 16);
loadObjectGeometry();
}
this.loadSTL = function(url) {
scope.newWorker('loadSTL', url);
}
this.loadOBJ = function(url) {
scope.newWorker('loadOBJ', url);
}
this.loadSTLString = function(STLString) {
scope.newWorker('loadSTLString', STLString);
}
this.loadSTLBinary = function(STLBinary) {
scope.newWorker('loadSTLBinary', STLBinary);
}
this.loadOBJString = function(OBJString) {
scope.newWorker('loadOBJString', OBJString);
}
this.loadJSON = function(url) {
scope.newWorker('loadJSON', url);
}
this.loadPLY = function(url) {
scope.newWorker('loadPLY', url);
}
this.loadPLYString = function(PLYString) {
scope.newWorker('loadPLYString', PLYString);
}
this.loadPLYBinary = function(PLYBinary) {
scope.newWorker('loadPLYBinary', PLYBinary);
}
this.centerCamera = function() {
if (geometry) {
// Using method from http://msdn.microsoft.com/en-us/library/bb197900(v=xnagamestudio.10).aspx
// log("bounding sphere radius = " + geometry.boundingSphere.radius);
// look at the center of the object
camera.target.position.x = geometry.center_x;
camera.target.position.y = geometry.center_y;
camera.target.position.z = geometry.center_z;
// set camera position to center of sphere
camera.position.x = geometry.center_x;
camera.position.y = geometry.center_y;
camera.position.z = geometry.center_z;
// find distance to center
distance = geometry.boundingSphere.radius / Math.sin((camera.fov/2) * (Math.PI / 180));
// zoom backwards about half that distance, I don't think I'm doing the math or backwards vector calculation correctly?
// scope.setCameraZoom(-distance/1.8);
// scope.setCameraZoom(-distance/1.5);
scope.setCameraZoom(-distance/1.9);
directionalLight.position.x = geometry.min_y * 2;
directionalLight.position.y = geometry.min_y * 2;
directionalLight.position.z = geometry.max_z * 2;
pointLight.position.x = geometry.center_y;
pointLight.position.y = geometry.center_y;
pointLight.position.z = geometry.max_z * 2;
} else {
// set to any valid position so it doesn't fail before geometry is available
camera.position.y = -70;
camera.position.z = 70;
camera.target.position.z = 0;
}
}
this.loadArray = function(array) {
log("loading array...");
geometry = new STLGeometry(array);
loadObjectGeometry();
scope.resetRotation();
scope.centerCamera();
log("finished loading " + geometry.faces.length + " faces.");
}
this.newWorker = function(cmd, param) {
scope.setRotation(false);
var worker = new WorkerFacade(thingiurlbase + '/thingiloader.js');
worker.onmessage = function(event) {
if (event.data.status == "complete") {
progressBar.innerHTML = 'Initializing geometry...';
// scene.removeObject(object);
geometry = new STLGeometry(event.data.content);
loadObjectGeometry();
progressBar.innerHTML = '';
progressBar.style.display = 'none';
scope.resetRotation();
log("finished loading " + geometry.faces.length + " faces.");
scope.centerCamera();
} else if (event.data.status == "complete_points") {
progressBar.innerHTML = 'Initializing points...';
geometry = new THREE.Geometry();
var material = new THREE.ParticleBasicMaterial( { color: 0xff0000, opacity: 1 } );
// material = new THREE.ParticleBasicMaterial( { size: 35, sizeAttenuation: false} );
// material.color.setHSV( 1.0, 0.2, 0.8 );
for (i in event.data.content[0]) {
// for (var i=0; i<10; i++) {
vector = new THREE.Vector3( event.data.content[0][i][0], event.data.content[0][i][1], event.data.content[0][i][2] );
geometry.vertices.push( new THREE.Vertex( vector ) );
}
particles = new THREE.ParticleSystem( geometry, material );
particles.sortParticles = true;
particles.updateMatrix();
scene.addObject( particles );
camera.updateMatrix();
renderer.render(scene, camera);
progressBar.innerHTML = '';
progressBar.style.display = 'none';
scope.resetRotation();
log("finished loading " + event.data.content[0].length + " points.");
// scope.centerCamera();
} else if (event.data.status == "progress") {
progressBar.style.display = 'block';
progressBar.style.width = event.data.content;
// log(event.data.content);
} else if (event.data.status == "message") {
progressBar.style.display = 'block';
progressBar.innerHTML = event.data.content;
log(event.data.content);
} else if (event.data.status == "alert") {
scope.displayAlert(event.data.content);
} else {
alert('Error: ' + event.data);
log('Unknown Worker Message: ' + event.data);
}
}
worker.onerror = function(error) {
log(error);
error.preventDefault();
}
worker.postMessage({'cmd':cmd, 'param':param});
}
this.displayAlert = function(msg) {
msg = msg + "<br/><br/><center><input type=\"button\" value=\"Ok\" onclick=\"document.getElementById('alertBox').style.display='none'\"></center>"
alertBox.innerHTML = msg;
alertBox.style.display = 'block';
// log(msg);
}
function loadPlaneGeometry() {
// TODO: switch to lines instead of the Plane object so we can get rid of the horizontal lines in canvas renderer...
plane = new THREE.Mesh(new Plane(100, 100, 10, 10), new THREE.MeshBasicMaterial({color:0xafafaf,wireframe:true}));
scene.addObject(plane);
}
function loadObjectGeometry() {
if (scene && geometry) {
if (objectMaterial == 'wireframe') {
// material = new THREE.MeshColorStrokeMaterial(objectColor, 1, 1);
material = new THREE.MeshBasicMaterial({color:objectColor,wireframe:true});
} else {
if (isWebGl) {
// material = new THREE.MeshPhongMaterial(objectColor, objectColor, 0xffffff, 50, 1.0);
// material = new THREE.MeshColorFillMaterial(objectColor);
// material = new THREE.MeshLambertMaterial({color:objectColor});
material = new THREE.MeshLambertMaterial({color:objectColor, shading: THREE.FlatShading});
} else {
// material = new THREE.MeshColorFillMaterial(objectColor);
material = new THREE.MeshLambertMaterial({color:objectColor, shading: THREE.FlatShading});
}
}
// scene.removeObject(object);
if (object) {
// shouldn't be needed, but this fixes a bug with webgl not removing previous object when loading a new one dynamically
object.materials = [new THREE.MeshBasicMaterial({color:0xffffff, opacity:0})];
scene.removeObject(object);
// object.geometry = geometry;
// object.materials = [material];
}
object = new THREE.Mesh(geometry, material);
scene.addObject(object);
if (objectMaterial != 'wireframe') {
object.overdraw = true;
object.doubleSided = true;
}
object.updateMatrix();
targetXRotation = 0;
targetYRotation = 0;
sceneLoop();
}
}
};
var STLGeometry = function(stlArray) {
// log("building geometry...");
THREE.Geometry.call(this);
var scope = this;
// var vertexes = stlArray[0];
// var normals = stlArray[1];
// var faces = stlArray[2];
for (var i=0; i<stlArray[0].length; i++) {
v(stlArray[0][i][0], stlArray[0][i][1], stlArray[0][i][2]);
}
for (var i=0; i<stlArray[1].length; i++) {
f3(stlArray[1][i][0], stlArray[1][i][1], stlArray[1][i][2]);
}
function v(x, y, z) {
// log("adding vertex: " + x + "," + y + "," + z);
scope.vertices.push( new THREE.Vertex( new THREE.Vector3( x, y, z ) ) );
}
function f3(a, b, c) {
// log("adding face: " + a + "," + b + "," + c)
scope.faces.push( new THREE.Face3( a, b, c ) );
}
// log("computing centroids...");
this.computeCentroids();
// log("computing normals...");
// this.computeNormals();
this.computeFaceNormals();
this.sortFacesByMaterial();
// log("finished building geometry");
scope.min_x = 0;
scope.min_y = 0;
scope.min_z = 0;
scope.max_x = 0;
scope.max_y = 0;
scope.max_z = 0;
for (var v = 0, vl = scope.vertices.length; v < vl; v ++) {
scope.max_x = Math.max(scope.max_x, scope.vertices[v].position.x);
scope.max_y = Math.max(scope.max_y, scope.vertices[v].position.y);
scope.max_z = Math.max(scope.max_z, scope.vertices[v].position.z);
scope.min_x = Math.min(scope.min_x, scope.vertices[v].position.x);
scope.min_y = Math.min(scope.min_y, scope.vertices[v].position.y);
scope.min_z = Math.min(scope.min_z, scope.vertices[v].position.z);
}
scope.center_x = (scope.max_x + scope.min_x)/2;
scope.center_y = (scope.max_y + scope.min_y)/2;
scope.center_z = (scope.max_z + scope.min_z)/2;
}
STLGeometry.prototype = new THREE.Geometry();
STLGeometry.prototype.constructor = STLGeometry;
function log(msg) {
if (this.console) {
console.log(msg);
}
}
/* A facade for the Web Worker API that fakes it in case it's missing.
Good when web workers aren't supported in the browser, but it's still fast enough, so execution doesn't hang too badly (e.g. Opera 10.5).
By Stefan Wehrmeyer, licensed under MIT
*/
var WorkerFacade;
if(!!window.Worker){
WorkerFacade = (function(){
return function(path){
return new window.Worker(path);
};
}());
} else {
WorkerFacade = (function(){
var workers = {}, masters = {}, loaded = false;
var that = function(path){
var theworker = {}, loaded = false, callings = [];
theworker.postToWorkerFunction = function(args){
try{
workers[path]({"data":args});
}catch(err){
theworker.onerror(err);
}
};
theworker.postMessage = function(params){
if(!loaded){
callings.push(params);
return;
}
theworker.postToWorkerFunction(params);
};
masters[path] = theworker;
var scr = document.createElement("SCRIPT");
scr.src = path;
scr.type = "text/javascript";
scr.onload = function(){
loaded = true;
while(callings.length > 0){
theworker.postToWorkerFunction(callings[0]);
callings.shift();
}
};
document.body.appendChild(scr);
var binaryscr = document.createElement("SCRIPT");
binaryscr.src = thingiurlbase + '/binaryReader.js';
binaryscr.type = "text/javascript";
document.body.appendChild(binaryscr);
return theworker;
};
that.fake = true;
that.add = function(pth, worker){
workers[pth] = worker;
return function(param){
masters[pth].onmessage({"data": param});
};
};
that.toString = function(){
return "FakeWorker('"+path+"')";
};
return that;
}());
}
/* Then just use WorkerFacade instead of Worker (or alias it)
The Worker code must should use a custom function (name it how you want) instead of postMessage.
Put this at the end of the Worker:
if(typeof(window) === "undefined"){
onmessage = nameOfWorkerFunction;
customPostMessage = postMessage;
} else {
customPostMessage = WorkerFacade.add("path/to/thisworker.js", nameOfWorkerFunction);
}
*/

View File

@ -29,6 +29,9 @@ allow_registration = true
## install other themes.
# theme = airy
# Should geotagged images be displayed with a map of the location?
geolocation_map_visible = true
[storage:queuestore]
base_dir = %(here)s/user_dev/media/queue

View File

@ -23,4 +23,4 @@
# see http://www.python.org/dev/peps/pep-0386/
__version__ = "0.3.2.dev"
__version__ = "0.3.2"

View File

@ -14,8 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from routes.route import Route
admin_routes = [
Route('mediagoblin.admin.panel', '/panel',
controller='mediagoblin.admin.views:admin_processing_panel')]
('mediagoblin.admin.panel',
'/panel',
'mediagoblin.admin.views:admin_processing_panel')]

View File

@ -14,18 +14,19 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.tools.response import render_to_response, render_404
from mediagoblin.db.util import DESCENDING
from mediagoblin.decorators import require_active_login
from mediagoblin.tools.response import (render_to_response, render_403,
render_404)
@require_active_login
def admin_processing_panel(request):
'''
Show the global processing panel for this instance
'''
# TODO: Why not a "require_admin_login" decorator throwing a 403 exception?
if not request.user.is_admin:
return render_404(request)
return render_403(request)
processing_entries = request.db.MediaEntry.find(
{'state': u'processing'}).sort('created', DESCENDING)

View File

@ -15,14 +15,14 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import urllib
import logging
import routes
from webob import exc
from werkzeug.wrappers import Request
from mediagoblin.routing import url_map, view_functions, add_route
from mediagoblin import routing, meddleware, __version__
from werkzeug.wrappers import Request
from werkzeug.exceptions import HTTPException, NotFound
from mediagoblin import meddleware, __version__
from mediagoblin.tools import common, translate, template
from mediagoblin.tools.response import render_404
from mediagoblin.tools.theme import register_themes
@ -31,7 +31,7 @@ from mediagoblin.mg_globals import setup_globals
from mediagoblin.init.celery import setup_celery_from_config
from mediagoblin.init.plugins import setup_plugins
from mediagoblin.init import (get_jinja_loader, get_staticdirector,
setup_global_and_app_config, setup_workbench, setup_database,
setup_global_and_app_config, setup_locales, setup_workbench, setup_database,
setup_storage, setup_beaker_cache)
from mediagoblin.tools.pluginapi import PluginManager
@ -68,6 +68,9 @@ class MediaGoblinApp(object):
# Setup other connections / useful objects
##########################################
# load all available locales
setup_locales()
# Set up plugins -- need to do this early so that plugins can
# affect startup.
_log.info("Setting up plugins.")
@ -90,7 +93,11 @@ class MediaGoblinApp(object):
self.public_store, self.queue_store = setup_storage()
# set up routing
self.routing = routing.get_mapper(PluginManager().get_routes())
self.url_map = url_map
for route in PluginManager().get_routes():
_log.debug('adding plugin route: {0}'.format(route))
add_route(*route)
# set up staticdirector tool
self.staticdirector = get_staticdirector(app_config)
@ -130,12 +137,10 @@ class MediaGoblinApp(object):
## Compatibility webob -> werkzeug
request.GET = request.args
request.accept_language = request.accept_languages
request.accept = request.accept_mimetypes
## Routing / controller loading stuff
path_info = request.path
route_match = self.routing.match(path_info)
map_adapter = self.url_map.bind_to_environ(request.environ)
# By using fcgi, mediagoblin can run under a base path
# like /mediagoblin/. request.path_info contains the
@ -154,47 +159,55 @@ class MediaGoblinApp(object):
environ.pop('HTTPS')
## Attach utilities to the request object
request.matchdict = route_match
request.urlgen = routes.URLGenerator(self.routing, environ)
# Do we really want to load this via middleware? Maybe?
request.session = request.environ['beaker.session']
# Attach self as request.app
# Also attach a few utilities from request.app for convenience?
request.app = self
request.locale = translate.get_locale_from_request(request)
request.template_env = template.get_jinja_env(
self.template_loader, request.locale)
request.db = self.db
request.staticdirect = self.staticdirector
request.locale = translate.get_locale_from_request(request)
request.template_env = template.get_jinja_env(
self.template_loader, request.locale)
def build_proxy(endpoint, **kw):
try:
qualified = kw.pop('qualified')
except KeyError:
qualified = False
return map_adapter.build(
endpoint,
values=dict(**kw),
force_external=qualified)
request.urlgen = build_proxy
mg_request.setup_user_in_request(request)
# No matching page?
if route_match is None:
# Try to do see if we have a match with a trailing slash
# added and if so, redirect
if not path_info.endswith('/') \
and request.method == 'GET' \
and self.routing.match(path_info + '/'):
new_path_info = path_info + '/'
if request.GET:
new_path_info = '%s?%s' % (
new_path_info, urllib.urlencode(request.GET))
redirect = exc.HTTPFound(location=new_path_info)
return request.get_response(redirect)(environ, start_response)
# Okay, no matches. 404 time!
request.matchdict = {} # in case our template expects it
try:
endpoint, url_values = map_adapter.match()
request.matchdict = url_values
except NotFound as exc:
return render_404(request)(environ, start_response)
except HTTPException as exc:
# Support legacy webob.exc responses
return exc(environ, start_response)
# import the controller, or if it's already a callable, call that
route_controller = route_match['controller']
if isinstance(route_controller, unicode) \
or isinstance(route_controller, str):
controller = common.import_component(route_match['controller'])
view_func = view_functions[endpoint]
_log.debug('endpoint: {0} view_func: {1}'.format(
endpoint,
view_func))
# import the endpoint, or if it's already a callable, call that
if isinstance(view_func, unicode) \
or isinstance(view_func, str):
controller = common.import_component(view_func)
else:
controller = route_match['controller']
controller = view_func
# pass the request through our meddleware classes
for m in self.meddleware:

View File

@ -14,25 +14,20 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from routes.route import Route
auth_routes = [
Route('mediagoblin.auth.register', '/register/',
controller='mediagoblin.auth.views:register'),
Route('mediagoblin.auth.login', '/login/',
controller='mediagoblin.auth.views:login'),
Route('mediagoblin.auth.logout', '/logout/',
controller='mediagoblin.auth.views:logout'),
Route('mediagoblin.auth.verify_email', '/verify_email/',
controller='mediagoblin.auth.views:verify_email'),
Route('mediagoblin.auth.resend_verification', '/resend_verification/',
controller='mediagoblin.auth.views:resend_activation'),
Route('mediagoblin.auth.resend_verification_success',
'/resend_verification_success/',
template='mediagoblin/auth/resent_verification_email.html',
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/',
controller='mediagoblin.auth.views:verify_forgot_password')]
('mediagoblin.auth.register', '/register/',
'mediagoblin.auth.views:register'),
('mediagoblin.auth.login', '/login/',
'mediagoblin.auth.views:login'),
('mediagoblin.auth.logout', '/logout/',
'mediagoblin.auth.views:logout'),
('mediagoblin.auth.verify_email', '/verify_email/',
'mediagoblin.auth.views:verify_email'),
('mediagoblin.auth.resend_verification', '/resend_verification/',
'mediagoblin.auth.views:resend_activation'),
('mediagoblin.auth.forgot_password', '/forgot_password/',
'mediagoblin.auth.views:forgot_password'),
('mediagoblin.auth.verify_forgot_password',
'/forgot_password/verify/',
'mediagoblin.auth.views:verify_forgot_password')]

View File

@ -27,8 +27,11 @@ These functions now live here and get "mixed in" into the
real objects.
"""
from werkzeug.utils import cached_property
from mediagoblin import mg_globals
from mediagoblin.auth import lib as auth_lib
from mediagoblin.media_types import get_media_managers, FileTypeNotSupported
from mediagoblin.tools import common, licenses
from mediagoblin.tools.text import cleaned_markdown_conversion
from mediagoblin.tools.url import slugify
@ -98,6 +101,7 @@ class MediaEntryMixin(object):
def slug_or_id(self):
return (self.slug or self._id)
def url_for_self(self, urlgen, **extra_args):
"""
Generate an appropriate url for ourselves
@ -112,6 +116,38 @@ class MediaEntryMixin(object):
media=self.slug_or_id,
**extra_args)
@property
def thumb_url(self):
"""Return the thumbnail URL (for usage in templates)
Will return either the real thumbnail or a default fallback icon."""
# TODO: implement generic fallback in case MEDIA_MANAGER does
# not specify one?
if u'thumb' in self.media_files:
thumb_url = mg_globals.app.public_store.file_url(
self.media_files[u'thumb'])
else:
# No thumbnail in media available. Get the media's
# MEDIA_MANAGER for the fallback icon and return static URL
# Raises FileTypeNotSupported in case no such manager is enabled
manager = self.media_manager
thumb_url = mg_globals.app.staticdirector(manager[u'default_thumb'])
return thumb_url
@cached_property
def media_manager(self):
"""Returns the MEDIA_MANAGER of the media's media_type
Raises FileTypeNotSupported in case no such manager is enabled
"""
# TODO, we should be able to make this a simple lookup rather
# than iterating through all media managers.
for media_type, manager in get_media_managers():
if media_type == self.media_type:
return manager
# Not found? Then raise an error
raise FileTypeNotSupported(
"MediaManager not in enabled types. Check media_types in config?")
def get_fail_exception(self):
"""
Get the exception that's appropriate for this error
@ -121,7 +157,7 @@ class MediaEntryMixin(object):
def get_license_data(self):
"""Return license dict for requested license"""
return licenses.SUPPORTED_LICENSES[self.license or ""]
return licenses.get_license_by_url(self.license or "")
def exif_display_iter(self):
from mediagoblin.tools.exif import USEFUL_TAGS

View File

@ -51,12 +51,18 @@ class GMGTableBase(object):
query = Session.query_property()
@classmethod
def find(cls, query_dict={}):
def find(cls, query_dict=None):
if query_dict is None:
query_dict = {}
_fix_query_dict(query_dict)
return cls.query.filter_by(**query_dict)
@classmethod
def find_one(cls, query_dict={}):
def find_one(cls, query_dict=None):
if query_dict is None:
query_dict = {}
_fix_query_dict(query_dict)
return cls.query.filter_by(**query_dict).first()
@ -79,11 +85,13 @@ class GMGTableBase(object):
sess.add(self)
sess.commit()
def delete(self):
def delete(self, commit=True):
"""Delete the object and commit the change immediately by default"""
sess = object_session(self)
assert sess is not None, "Not going to delete detached %r" % self
sess.delete(self)
sess.commit()
if commit:
sess.commit()
Base = declarative_base(cls=GMGTableBase)

View File

@ -17,11 +17,14 @@
import datetime
from sqlalchemy import (MetaData, Table, Column, Boolean, SmallInteger,
Integer, Unicode, UnicodeText, DateTime, ForeignKey)
Integer, Unicode, UnicodeText, DateTime,
ForeignKey)
from sqlalchemy.exc import ProgrammingError
from sqlalchemy.ext.declarative import declarative_base
from migrate.changeset.constraint import UniqueConstraint
from mediagoblin.db.sql.util import RegisterMigration
from mediagoblin.db.sql.models import MediaEntry, Collection, User, \
ProcessingMetaData
from mediagoblin.db.sql.models import MediaEntry, Collection, User
MIGRATIONS = {}
@ -65,29 +68,45 @@ def add_transcoding_progress(db_conn):
db_conn.commit()
class Collection_v0(declarative_base()):
__tablename__ = "core__collections"
id = Column(Integer, primary_key=True)
title = Column(Unicode, nullable=False)
slug = Column(Unicode)
created = Column(DateTime, nullable=False, default=datetime.datetime.now,
index=True)
description = Column(UnicodeText)
creator = Column(Integer, ForeignKey(User.id), nullable=False)
items = Column(Integer, default=0)
class CollectionItem_v0(declarative_base()):
__tablename__ = "core__collection_items"
id = Column(Integer, primary_key=True)
media_entry = Column(
Integer, ForeignKey(MediaEntry.id), nullable=False, index=True)
collection = Column(Integer, ForeignKey(Collection.id), nullable=False)
note = Column(UnicodeText, nullable=True)
added = Column(DateTime, nullable=False, default=datetime.datetime.now)
position = Column(Integer)
## This should be activated, normally.
## But this would change the way the next migration used to work.
## So it's commented for now.
__table_args__ = (
UniqueConstraint('collection', 'media_entry'),
{})
collectionitem_unique_constraint_done = False
@RegisterMigration(4, MIGRATIONS)
def add_collection_tables(db_conn):
metadata = MetaData(bind=db_conn.bind)
Collection_v0.__table__.create(db_conn.bind)
CollectionItem_v0.__table__.create(db_conn.bind)
collection = Table('core__collections', metadata,
Column('id', Integer, primary_key=True),
Column('title', Unicode, nullable=False),
Column('slug', Unicode),
Column('created', DateTime, nullable=False, default=datetime.datetime.now, index=True),
Column('description', UnicodeText),
Column('creator', Integer, ForeignKey(User.id), nullable=False),
Column('items', Integer, default=0))
collection_item = Table('core__collection_items', metadata,
Column('id', Integer, primary_key=True),
Column('media_entry', Integer, ForeignKey(MediaEntry.id), nullable=False, index=True),
Column('collection', Integer, ForeignKey(Collection.id), nullable=False),
Column('note', UnicodeText, nullable=True),
Column('added', DateTime, nullable=False, default=datetime.datetime.now),
Column('position', Integer))
collection.create()
collection_item.create()
global collectionitem_unique_constraint_done
collectionitem_unique_constraint_done = True
db_conn.commit()
@ -104,15 +123,67 @@ def add_mediaentry_collected(db_conn):
db_conn.commit()
class ProcessingMetaData_v0(declarative_base()):
__tablename__ = 'core__processing_metadata'
id = Column(Integer, primary_key=True)
media_entry_id = Column(Integer, ForeignKey(MediaEntry.id), nullable=False,
index=True)
callback_url = Column(Unicode)
@RegisterMigration(6, MIGRATIONS)
def create_processing_metadata_table(db):
metadata = MetaData(bind=db.bind)
metadata_table = Table('core__processing_metadata', metadata,
Column('id', Integer, primary_key=True),
Column('media_entry_id', Integer, ForeignKey(MediaEntry.id),
nullable=False, index=True),
Column('callback_url', Unicode))
metadata_table.create()
ProcessingMetaData_v0.__table__.create(db.bind)
db.commit()
# Okay, problem being:
# Migration #4 forgot to add the uniqueconstraint for the
# new tables. While creating the tables from scratch had
# the constraint enabled.
#
# So we have four situations that should end up at the same
# db layout:
#
# 1. Fresh install.
# Well, easy. Just uses the tables in models.py
# 2. Fresh install using a git version just before this migration
# The tables are all there, the unique constraint is also there.
# This migration should do nothing.
# But as we can't detect the uniqueconstraint easily,
# this migration just adds the constraint again.
# And possibly fails very loud. But ignores the failure.
# 3. old install, not using git, just releases.
# This one will get the new tables in #4 (now with constraint!)
# And this migration is just skipped silently.
# 4. old install, always on latest git.
# This one has the tables, but lacks the constraint.
# So this migration adds the constraint.
@RegisterMigration(7, MIGRATIONS)
def fix_CollectionItem_v0_constraint(db_conn):
"""Add the forgotten Constraint on CollectionItem"""
global collectionitem_unique_constraint_done
if collectionitem_unique_constraint_done:
# Reset it. Maybe the whole thing gets run again
# For a different db?
collectionitem_unique_constraint_done = False
return
metadata = MetaData(bind=db_conn.bind)
CollectionItem_table = Table('core__collection_items',
metadata, autoload=True, autoload_with=db_conn.bind)
constraint = UniqueConstraint('collection', 'media_entry',
name='core__collection_items_collection_media_entry_key',
table=CollectionItem_table)
try:
constraint.create()
except ProgrammingError:
# User probably has an install that was run since the
# collection tables were added, so we don't need to run this migration.
pass
db_conn.commit()

View File

@ -39,7 +39,7 @@ class MigrationManager(object):
- migration_registry: where we should find all migrations to
run
"""
self.name = name
self.name = unicode(name)
self.models = models
self.session = session
self.migration_registry = migration_registry
@ -217,9 +217,9 @@ class MigrationManager(object):
u' + Running migration %s, "%s"... ' % (
migration_number, migration_func.func_name))
migration_func(self.session)
self.set_current_migration(migration_number)
self.printer('done.\n')
self.set_current_migration()
return u'migrated'
# Otherwise return None. Well it would do this anyway, but
@ -297,17 +297,17 @@ def media_entries_for_tag_slug(dummy_db, tag_slug):
& (Tag.slug == tag_slug))
def clean_orphan_tags():
def clean_orphan_tags(commit=True):
"""Search for unused MediaTags and delete them"""
q1 = Session.query(Tag).outerjoin(MediaTag).filter(MediaTag.id==None)
for t in q1:
Session.delete(t)
# The "let the db do all the work" version:
# q1 = Session.query(Tag.id).outerjoin(MediaTag).filter(MediaTag.id==None)
# q2 = Session.query(Tag).filter(Tag.id.in_(q1))
# q2.delete(synchronize_session = False)
Session.commit()
if commit:
Session.commit()
def check_collection_slug_used(dummy_db, creator_id, slug, ignore_c_id):

View File

@ -22,6 +22,7 @@ from urllib import urlencode
from webob import exc
from mediagoblin.db.util import ObjectId, InvalidId
from mediagoblin.db.sql.models import User
from mediagoblin.tools.response import redirect, render_404
@ -52,6 +53,20 @@ def require_active_login(controller):
return new_controller_func
def active_user_from_url(controller):
"""Retrieve User() from <user> URL pattern and pass in as url_user=...
Returns a 404 if no such active user has been found"""
@wraps(controller)
def wrapper(request, *args, **kwargs):
user = User.query.filter_by(username=request.matchdict['user']).first()
if user is None:
return render_404(request)
return controller(request, *args, url_user=user, **kwargs)
return wrapper
def user_may_delete_media(controller):
"""

View File

@ -68,8 +68,7 @@ class EditAccountForm(wtforms.Form):
[wtforms.validators.Length(min=6, max=30)],
id="password")
wants_comment_notification = wtforms.BooleanField(
_(''),
description=_("Email me when others comment on my media"))
label=_("Email me when others comment on my media"))
class EditAttachmentsForm(wtforms.Form):

View File

@ -14,13 +14,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.routing import add_route
from routes.route import Route
edit_routes = [
# Media editing view handled in user_pages/routing.py
Route('mediagoblin.edit.profile', '/profile/',
controller="mediagoblin.edit.views:edit_profile"),
Route('mediagoblin.edit.account', '/account/',
controller="mediagoblin.edit.views:edit_account"),
]
add_route('mediagoblin.edit.profile', '/edit/profile/',
'mediagoblin.edit.views:edit_profile')
add_route('mediagoblin.edit.account', '/edit/account/',
'mediagoblin.edit.views:edit_account')

View File

@ -106,9 +106,8 @@ def edit_attachments(request, media):
form = forms.EditAttachmentsForm()
# Add any attachements
if ('attachment_file' in request.form
and isinstance(request.form['attachment_file'], FieldStorage)
and request.form['attachment_file'].file):
if 'attachment_file' in request.files \
and request.files['attachment_file']:
# Security measure to prevent attachments from being served as
# text/html, which will be parsed by web clients and pose an XSS
@ -121,13 +120,13 @@ def edit_attachments(request, media):
# machine parsing the upload form, and not necessarily the machine
# serving the attachments.
if mimetypes.guess_type(
request.form['attachment_file'].filename)[0] in \
request.files['attachment_file'].filename)[0] in \
UNSAFE_MIMETYPES:
public_filename = secure_filename('{0}.notsafe'.format(
request.form['attachment_file'].filename))
request.files['attachment_file'].filename))
else:
public_filename = secure_filename(
request.form['attachment_file'].filename)
request.files['attachment_file'].filename)
attachment_public_filepath \
= mg_globals.public_store.get_unique_filepath(
@ -139,13 +138,13 @@ def edit_attachments(request, media):
try:
attachment_public_file.write(
request.form['attachment_file'].file.read())
request.files['attachment_file'].stream.read())
finally:
request.form['attachment_file'].file.close()
request.files['attachment_file'].stream.close()
media.attachment_files.append(dict(
name=request.form['attachment_name'] \
or request.form['attachment_file'].filename,
or request.files['attachment_file'].filename,
filepath=attachment_public_filepath,
created=datetime.utcnow(),
))
@ -154,9 +153,9 @@ def edit_attachments(request, media):
messages.add_message(
request, messages.SUCCESS,
"You added the attachment %s!" \
_("You added the attachment %s!") \
% (request.form['attachment_name']
or request.form['attachment_file'].filename))
or request.files['attachment_file'].filename))
return exc.HTTPFound(
location=media.url_for_self(request.urlgen))
@ -276,12 +275,12 @@ def edit_collection(request, collection):
# and userid.
slug_used = check_collection_slug_used(request.db, collection.creator,
request.form['slug'], collection.id)
# Make sure there isn't already a Collection with this title
existing_collection = request.db.Collection.find_one({
'creator': request.user._id,
'title':request.form['title']})
if existing_collection and existing_collection.id != collection.id:
messages.add_message(
request, messages.ERROR,

View File

@ -37,11 +37,11 @@ SUBCOMMAND_MAP = {
'makeadmin': {
'setup': 'mediagoblin.gmg_commands.users:makeadmin_parser_setup',
'func': 'mediagoblin.gmg_commands.users:makeadmin',
'help': 'Changes a user\'s password'},
'help': 'Makes user an admin'},
'changepw': {
'setup': 'mediagoblin.gmg_commands.users:changepw_parser_setup',
'func': 'mediagoblin.gmg_commands.users:changepw',
'help': 'Makes admin an user'},
'help': 'Changes a user\'s password'},
'dbupdate': {
'setup': 'mediagoblin.gmg_commands.dbupdate:dbupdate_parse_setup',
'func': 'mediagoblin.gmg_commands.dbupdate:dbupdate',

View File

@ -47,24 +47,21 @@ def py_shell(**user_namespace):
def ipython_shell(**user_namespace):
"""
Run a shell for the user using ipython.
Run a shell for the user using ipython. Return False if there is no IPython
"""
try:
from IPython import embed
except:
print "IPython not available... exiting!"
return
return False
embed(
banner1=SHELL_BANNER,
user_ns=user_namespace)
return True
def shell(args):
"""
Setup a shell for the user
either a normal Python shell
or an IPython one
Setup a shell for the user either a normal Python shell or an IPython one
"""
user_namespace = {
'mg_globals': mg_globals,
@ -74,4 +71,6 @@ def shell(args):
if args.ipython:
ipython_shell(**user_namespace)
else:
py_shell(**user_namespace)
# Try ipython_shell first and fall back if not available
if not ipython_shell(**user_namespace):
py_shell(**user_namespace)

View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -94,7 +94,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -105,7 +105,7 @@ msgid "Description of this work"
msgstr "وصف هذا العمل."
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -121,11 +121,11 @@ msgstr "الوسوم"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "المسار"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "لا يمكن ترك المسار فارغًا"
@ -164,20 +164,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -191,33 +191,38 @@ msgstr "يوجد ملف آخر بهذا المسار لدى هذى المستخ
msgid "You are editing another user's media. Proceed with caution."
msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثناء العملية."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -234,7 +239,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -304,7 +309,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -329,62 +334,43 @@ msgstr "يا سلام! نُشرَت!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "صورة قزم مرتبك"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "ويحي!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "يبدو أنه لا توجد صفحة في العنوان. عذرًا!"
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "شعار ميدياغوبلن"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "أضف وسائط"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "لِج"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -392,31 +378,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "لوحة معالجة الوسائط"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -424,17 +435,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "أحدث الوسائط"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "لوحة معالجة الوسائط"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -543,30 +547,43 @@ msgstr "أهلًا يا %(username)s،\n\nافتح الرابط التالي\nف
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "ألغِ"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "احفظ التغييرات"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "تحرير %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "ألغِ"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "احفظ التغييرات"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -592,13 +609,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -625,6 +641,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -649,7 +715,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -678,14 +744,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -693,7 +751,7 @@ msgid "Really delete %(title)s?"
msgstr "أتود حقًا حذف %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -702,7 +760,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -728,12 +786,6 @@ msgstr "وسائط <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -760,13 +812,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -774,11 +821,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -849,41 +896,25 @@ msgstr "حرِّر الملف الشخصي"
msgid "This user hasn't filled in their profile (yet)."
msgstr "لم يعبئ هذا العضو بيانات ملفه بعد."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "أظهِر كل وسائط %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr "أضف وسائط"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -903,7 +934,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -942,6 +973,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "ويحي!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "أنا متأكد من رغبتي بحذف هذا العمل"
@ -962,74 +1019,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "أنت على وشك حذف وسائط مستخدم آخر. كن حذرًا أثناء العملية."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -5,12 +5,13 @@
# Translators:
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2012.
# Olle Jonsson <olle.jonsson@gmail.com>, 2012.
# Tanja Trudslev <tanja.trudslev@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -34,41 +35,41 @@ msgstr "Email adresse"
#: mediagoblin/auth/forms.py:51
msgid "Username or email"
msgstr ""
msgstr "Brugernavn eller email"
#: mediagoblin/auth/forms.py:58
msgid "Incorrect input"
msgstr ""
msgstr "Forkert input"
#: mediagoblin/auth/views.py:55
msgid "Sorry, registration is disabled on this instance."
msgstr ""
msgstr "Desværre, registrering er ikke muligt på denne instans"
#: mediagoblin/auth/views.py:75
msgid "Sorry, a user with that name already exists."
msgstr ""
msgstr "Desværre, det brugernavn er allerede brugt"
#: mediagoblin/auth/views.py:79
msgid "Sorry, a user with that email address already exists."
msgstr ""
msgstr "Desværre, en bruger er allerede oprettet for den email"
#: mediagoblin/auth/views.py:182
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr ""
msgstr "Din email adresse er blevet bekræftet. Du kan nu logge på, ændre din profil, og indsende billeder!"
#: mediagoblin/auth/views.py:188
msgid "The verification key or user id is incorrect"
msgstr ""
msgstr "Bekræftelsesnøglen eller brugerid er forkert"
#: mediagoblin/auth/views.py:206
msgid "You must be logged in so we know who to send the email to!"
msgstr ""
msgstr "Du er nødt til at være logget ind, så vi ved hvem vi skal emaile!"
#: mediagoblin/auth/views.py:214
msgid "You've already verified your email address!"
msgstr ""
msgstr "Du har allerede bekræftet din email adresse!"
#: mediagoblin/auth/views.py:227
msgid "Resent your verification email."
@ -77,23 +78,23 @@ msgstr "Email til godkendelse sendt igen."
#: mediagoblin/auth/views.py:263
msgid ""
"An email has been sent with instructions on how to change your password."
msgstr ""
msgstr "En email er blevet sendt med instruktioner til at ændre dit kodeord."
#: mediagoblin/auth/views.py:273
msgid ""
"Could not send password recovery email as your username is inactive or your "
"account's email address has not been verified."
msgstr ""
msgstr "Vi kunne ikke sende en kodeords nulstillings email da dit brugernavn er inaktivt, eller din konto's email adresse er ikke blevet godkendt."
#: mediagoblin/auth/views.py:285
msgid "Couldn't find someone with that username or email."
msgstr ""
msgstr "Vi kunne ikke dit brugernavn eller email."
#: mediagoblin/auth/views.py:333
msgid "You can now log in using your new password."
msgstr ""
msgstr "Du kan nu logge ind med dit nye kodeord."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -101,30 +102,30 @@ msgstr "Titel"
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
msgid "Description of this work"
msgstr ""
msgstr "Beskrivelse af arbejdet"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
" Markdown</a> for formatting."
msgstr ""
msgstr "Du kan bruge\n <a href=\"http://daringfireball.net/projects/markdown/basics\">\n Markdown</a> til formattering."
#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36
msgid "Tags"
msgstr ""
msgstr "Tags"
#: mediagoblin/edit/forms.py:35 mediagoblin/submit/forms.py:38
msgid "Separate tags by commas."
msgstr ""
msgstr "Separer tags med kommaer."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -132,16 +133,16 @@ msgstr ""
msgid ""
"The title part of this media's address. You usually don't need to change "
"this."
msgstr ""
msgstr "Titeldelen af dette medie's adresse. Du behøver normalt ikke ændre dette."
#: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41
#: mediagoblin/templates/mediagoblin/utils/license.html:20
msgid "License"
msgstr ""
msgstr "Licens"
#: mediagoblin/edit/forms.py:50
msgid "Bio"
msgstr ""
msgstr "Bio"
#: mediagoblin/edit/forms.py:56
msgid "Website"
@ -149,38 +150,38 @@ msgstr "Websted"
#: mediagoblin/edit/forms.py:58
msgid "This address contains errors"
msgstr ""
msgstr "Denne adresse indeholder fejl"
#: mediagoblin/edit/forms.py:63
msgid "Old password"
msgstr ""
msgstr "Gammelt kodeord"
#: mediagoblin/edit/forms.py:64
msgid "Enter your old password to prove you own this account."
msgstr ""
msgstr "Skriv dit gamle kodeord for at bevise det er din konto."
#: mediagoblin/edit/forms.py:67
msgid "New password"
msgstr ""
msgstr "Ny kodeord"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
msgstr "Email mig når andre kommenterer på mine medier"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
msgstr "Titlen kan ikke være tom"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
msgstr "Beskrivelse af denne samling"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
msgstr ""
msgstr "Titeldelen af denne samlings's adresse. Du behøver normalt ikke ændre dette."
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@ -188,41 +189,46 @@ msgstr ""
#: mediagoblin/edit/views.py:86
msgid "You are editing another user's media. Proceed with caution."
msgstr "Du er ved at ændre en anden brugers' medier. Pas på."
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
msgstr "Du er ved at ændre en bruger's profil. Pas på."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
msgstr "Profilændringer gemt"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
msgstr "Kontoindstillinger gemt"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
msgstr "Forkert kodeord"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
msgstr "Du har allerede en samling ved navn \"%s\"!"
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
msgstr "Du er ved at ændre en anden bruger's samling. Pas på."
#: mediagoblin/gmg_commands/theme.py:58
msgid "Cannot link theme... no theme set\n"
msgstr ""
msgstr "Kan ikke linke til tema... intet tema sat\n"
#: mediagoblin/gmg_commands/theme.py:71
msgid "No asset directory for this theme\n"
@ -233,9 +239,9 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
msgstr "Desværre, jeg understøtter ikke den filtype :("
#: mediagoblin/media_types/video/processing.py:35
msgid "Video transcoding failed"
@ -247,27 +253,27 @@ msgstr ""
#: mediagoblin/plugins/oauth/forms.py:28
msgid "Next URL"
msgstr ""
msgstr "Næste URL"
#: mediagoblin/plugins/oauth/forms.py:30
msgid "Allow"
msgstr ""
msgstr "Tillad"
#: mediagoblin/plugins/oauth/forms.py:31
msgid "Deny"
msgstr ""
msgstr "Forbyd"
#: mediagoblin/plugins/oauth/forms.py:35
msgid "Name"
msgstr ""
msgstr "Navn"
#: mediagoblin/plugins/oauth/forms.py:36
msgid "The name of the OAuth client"
msgstr ""
msgstr "Navnet af OAuth klienten"
#: mediagoblin/plugins/oauth/forms.py:37
msgid "Description"
msgstr ""
msgstr "Beskrivelse"
#: mediagoblin/plugins/oauth/forms.py:39
msgid ""
@ -277,7 +283,7 @@ msgstr ""
#: mediagoblin/plugins/oauth/forms.py:41
msgid "Type"
msgstr ""
msgstr "Type"
#: mediagoblin/plugins/oauth/forms.py:46
msgid ""
@ -301,15 +307,15 @@ msgstr ""
#: mediagoblin/plugins/oauth/forms.py:67
msgid "This field is required for public clients"
msgstr ""
msgstr "Dette felt er nødvendigt for offentlige klienter"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
msgstr "Klienten {0} er blevet registreret!"
#: mediagoblin/processing/__init__.py:138
msgid "Invalid file given for media type."
msgstr ""
msgstr "Forkert fil for medietypen."
#: mediagoblin/submit/forms.py:26
msgid "File"
@ -317,73 +323,54 @@ msgstr "Fil"
#: mediagoblin/submit/views.py:57
msgid "You must provide a file."
msgstr ""
msgstr "Du må give mig en fil"
#: mediagoblin/submit/views.py:164
msgid "Woohoo! Submitted!"
msgstr ""
msgstr "Juhuu! Delt!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Billede af stresset 404 goblin"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Hovsa!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "MediaGoblin logo"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
msgstr "Bekræft din email!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Log ind"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +378,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
msgstr "Udforsk"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
msgstr "Hey, velkommen til denne MediaGoblin side!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
msgstr "For at tilføje dine egne medier, skrive kommentarer, og mere, du kan logge ind med din MediaGoblin konto."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
msgstr "Har du ikke en endnu? Det er let!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +435,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -542,30 +547,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Afbryd"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Gem ændringer"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Afbryd"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Gem ændringer"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -591,13 +609,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -624,6 +641,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +715,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -677,14 +744,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +751,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -701,7 +760,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -727,12 +786,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -759,13 +812,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -773,11 +821,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -848,41 +896,25 @@ msgstr "Ret profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -902,7 +934,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -941,6 +973,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Hovsa!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -961,74 +1019,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -5,7 +5,7 @@
# Translators:
# <benjamin@lebsanft.org>, 2011.
# <cwebber@dustycloud.org>, 2011.
# Elrond <elrond+mediagoblin.org@samba-tng.org>, 2011, 2012.
# Elrond <elrond+mediagoblin.org@samba-tng.org>, 2011-2012.
# <jakob.kramer@gmx.de>, 2011, 2012.
# Jakob Kramer <jakob.kramer@gmx.de>, 2012.
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 2011.
@ -13,13 +13,15 @@
# <kyoo@kyoo.ch>, 2011.
# <mediagoblin.org@samba-tng.org>, 2011.
# Rafael Maguiña <rafael.maguina@gmail.com>, 2011.
# <sebastian@sspaeth.de>, 2012.
# Vinzenz Vietzke <vietzke@b1-systems.de>, 2012.
# Vinzenz Vietzke <vinz@fedoraproject.org>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: German (http://www.transifex.com/projects/p/mediagoblin/language/de/)\n"
"MIME-Version: 1.0\n"
@ -51,7 +53,7 @@ msgstr "Fehlerhafte Eingabe"
#: mediagoblin/auth/views.py:55
msgid "Sorry, registration is disabled on this instance."
msgstr "Das Registrieren ist auf dieser Instanz leider deaktiviert."
msgstr "Benutzerregistrierung ist auf diesem Server leider deaktiviert."
#: mediagoblin/auth/views.py:75
msgid "Sorry, a user with that name already exists."
@ -65,11 +67,11 @@ msgstr "Leider gibt es bereits einen Benutzer mit dieser E-Mail-Adresse."
msgid ""
"Your email address has been verified. You may now login, edit your profile, "
"and submit images!"
msgstr "Deine E-Mail-Adresse wurde bestätigt. Du kannst dich nun anmelden, dein Profil bearbeiten und Bilder hochladen!"
msgstr "Dein GNU MediaGoblin Konto wurde hiermit aktiviert. Du kannst dich jetzt anmelden, dein Profil bearbeiten und Medien hochladen."
#: mediagoblin/auth/views.py:188
msgid "The verification key or user id is incorrect"
msgstr "Der Bestätigungsschlüssel oder die Nutzernummer ist falsch."
msgstr "Der Aktivierungsschlüssel oder die Nutzerkennung ist falsch."
#: mediagoblin/auth/views.py:206
msgid "You must be logged in so we know who to send the email to!"
@ -77,22 +79,22 @@ msgstr "Du musst angemeldet sein, damit wir wissen, wer die Email bekommt."
#: mediagoblin/auth/views.py:214
msgid "You've already verified your email address!"
msgstr "Deine E-Mail-Adresse wurde bereits bestätigt."
msgstr "Deine E-Mail-Adresse wurde bereits aktiviert."
#: mediagoblin/auth/views.py:227
msgid "Resent your verification email."
msgstr "Bestätigungs-E-Mail wurde erneut versandt."
msgstr "Aktivierungsmail wurde erneut versandt."
#: mediagoblin/auth/views.py:263
msgid ""
"An email has been sent with instructions on how to change your password."
msgstr "Es wurde eine Email mit Anweisungen für die Änderung des Passwortes an dich gesendet."
msgstr "Es wurde eine E-Mail mit der Anleitung zur Änderung des Passwortes an Dich gesendet."
#: mediagoblin/auth/views.py:273
msgid ""
"Could not send password recovery email as your username is inactive or your "
"account's email address has not been verified."
msgstr "Die E-Mail zur Wiederherstellung des Passworts konnte nicht verschickt werden, weil dein Benutzername inaktiv oder deine E-Mail-Adresse noch nicht bestätigt wurde."
msgstr "Die E-Mail zur Wiederherstellung des Passworts konnte nicht verschickt werden, weil dein Benutzername inaktiv oder deine E-Mail-Adresse noch nicht aktiviert wurde."
#: mediagoblin/auth/views.py:285
msgid "Couldn't find someone with that username or email."
@ -102,7 +104,7 @@ msgstr "Es konnte niemand mit diesem Nutzernamen oder Email gefunden werden."
msgid "You can now log in using your new password."
msgstr "Du kannst dich jetzt mit deinem neuen Passwort anmelden."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -113,7 +115,7 @@ msgid "Description of this work"
msgstr "Beschreibung des Werkes"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -129,11 +131,11 @@ msgstr "Schlagwörter"
msgid "Separate tags by commas."
msgstr "Kommaseparierte Schlagwörter"
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Kurztitel"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Bitte gib einen Kurztitel ein"
@ -172,24 +174,24 @@ msgstr "Gib dein altes Passwort ein, um zu bestätigen, dass du dieses Konto bes
msgid "New password"
msgstr "Neues Passwort"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Mir eine E-Mail schicken, wenn andere meine Medien kommentieren"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
msgstr "Der Titel kann nicht leer sein"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
msgstr "Beschreibung dieser Sammlung"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
msgstr ""
msgstr "Der Titelteil dieser Sammlungsadresse. Du musst ihn normalerweise nicht ändern."
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@ -197,37 +199,42 @@ msgstr "Diesen Kurztitel hast du bereits vergeben."
#: mediagoblin/edit/views.py:86
msgid "You are editing another user's media. Proceed with caution."
msgstr "Du bearbeitest die Medien eines Anderen. Sei bitte vorsichtig."
msgstr "Du bearbeitest die Medien eines anderen Nutzers. Sei bitte vorsichtig."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "Sie haben den Anhang %s hinzugefügt!"
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Du bearbeitest das Profil eines Anderen. Sei bitte vorsichtig."
msgstr "Du bearbeitest das Profil eines anderen Nutzers. Sei bitte vorsichtig."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Das Profil wurde aktualisiert"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Kontoeinstellungen gespeichert"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Falsches Passwort"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
msgstr "Du hast bereits eine Sammlung mit Namen \"%s\"!"
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
msgstr "Eine Sammlung mit diesem Kürzel existiert bereits für diesen Benutzer."
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
msgstr "Du bearbeitest die Sammlung eines anderen Benutzers. Sei vorsichtig."
#: mediagoblin/gmg_commands/theme.py:58
msgid "Cannot link theme... no theme set\n"
@ -242,7 +249,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "Trotzdem wurde eine alte Verknüpfung gefunden; sie wurde entfernt\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Entschuldigung, dieser Dateityp wird nicht unterstützt."
@ -252,41 +259,41 @@ msgstr "Videokonvertierung fehlgeschlagen"
#: mediagoblin/plugins/oauth/forms.py:26
msgid "Client ID"
msgstr ""
msgstr "Client-ID"
#: mediagoblin/plugins/oauth/forms.py:28
msgid "Next URL"
msgstr ""
msgstr "Nächste URL"
#: mediagoblin/plugins/oauth/forms.py:30
msgid "Allow"
msgstr ""
msgstr "Erlauben"
#: mediagoblin/plugins/oauth/forms.py:31
msgid "Deny"
msgstr ""
msgstr "Verweigern"
#: mediagoblin/plugins/oauth/forms.py:35
msgid "Name"
msgstr ""
msgstr "Name"
#: mediagoblin/plugins/oauth/forms.py:36
msgid "The name of the OAuth client"
msgstr ""
msgstr "Der Name des OAuth-Clients"
#: mediagoblin/plugins/oauth/forms.py:37
msgid "Description"
msgstr ""
msgstr "Beschreibung"
#: mediagoblin/plugins/oauth/forms.py:39
msgid ""
"This will be visible to users allowing your\n"
" application to authenticate as them."
msgstr ""
msgstr "Dies wird für Benutzer sichtbar sein, die deiner\nAnwendung erlauben, sich als sie zu authentifizieren.."
#: mediagoblin/plugins/oauth/forms.py:41
msgid "Type"
msgstr ""
msgstr "Typ"
#: mediagoblin/plugins/oauth/forms.py:46
msgid ""
@ -296,25 +303,25 @@ msgid ""
" <strong>Public</strong> - The client can't make confidential\n"
" requests to the GNU MediaGoblin instance (e.g. client-side\n"
" JavaScript client)."
msgstr ""
msgstr "<strong>Vertraulich</strong> - Der Client kann\n Anfragen an die GNU MediaGoblin Instanz stellen, die nicht durch den \n Benutzer-Agent (z.B. serverseitiger Client) unterbunden werden können.<br />\n <strong>Öffentlich</strong> - Der Client kann keine vertraulichen \n Anfragen an die GNU MediaGoblin Instanz stellen (z.B. clientseitiger\n JavaScript Client)."
#: mediagoblin/plugins/oauth/forms.py:53
msgid "Redirect URI"
msgstr ""
msgstr "Weiterleitungs-URI"
#: mediagoblin/plugins/oauth/forms.py:55
msgid ""
"The redirect URI for the applications, this field\n"
" is <strong>required</strong> for public clients."
msgstr ""
msgstr "Die Weiterleitungs-URI für die Anwendung, dieses Feld\n ist <strong>Pflicht</strong> für öffentliche Clients."
#: mediagoblin/plugins/oauth/forms.py:67
msgid "This field is required for public clients"
msgstr ""
msgstr "Dieses Feld ist Pflicht für öffentliche Clients"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
msgstr "Client {0} wurde registriert!"
#: mediagoblin/processing/__init__.py:138
msgid "Invalid file given for media type."
@ -330,69 +337,50 @@ msgstr "Du musst eine Datei angeben."
#: mediagoblin/submit/views.py:164
msgid "Woohoo! Submitted!"
msgstr "Yeeeaaah! Geschafft!"
msgstr "JAAA! Geschafft!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr ""
msgstr "Sammlung \"%s\" hinzugefügt!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Bild eines angespannten Goblins"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Hoppla!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Tut uns Leid, aber unter der angegebenen Adresse gibt es keine Seite!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell verschoben oder gelöscht."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "MediaGoblin-Logo"
msgstr "MediaGoblin Logo"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "<a href=\"%(user_url)s\">%(user_name)s</a>s Konto"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "abmelden"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Medien hinzufügen"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Bitte bestätige deine E-Mail-Adresse!"
msgstr "Bitte bestätige Deine E-Mail-Adresse!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Medien hinzufügen"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Dein Profil ansehen"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Abmelden"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Anmelden"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Diese Seite setzt das <a href=\"http://gnu.org/\">GNU</a>-Projekt <a href=\"http://mediagoblin.org/\">MediaGoblin</a> ein."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -400,31 +388,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Veröffentlicht unter der <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a> (<a href=\"%(source_link)s\">Quellcode</a>)."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr "Bild eines gestressten Goblins"
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Aktionen"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr " Neues Album erstellen"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Kontoeinstellungen ändern"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Medienverarbeitung"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Entdecken"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Hallo du, willkommen auf dieser MediaGoblin-Seite!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Diese Seite setzt <a href=\"http://mediagoblin.org\">MediaGoblin</a> ein, eine großartige Software für Medienhosting."
msgstr "Diese Webseite setzt <a href=\"http://mediagoblin.org\">MediaGoblin</a> ein, eine großartige Software für Medienhosting."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Melde dich mit deinem MediaGoblin-Konto an, um eigene Medien hinzuzufügen, zu kommentieren und mehr."
msgstr "Melde Dich mit Deinem MediaGoblin-Konto an, um eigene Medien hinzuzufügen, andere zu kommentieren und vieles mehr."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Hast du noch keinen? Das geht ganz einfach!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -432,17 +445,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Registriere dich auf dieser Seite</a> oder <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Installiere MediaGoblin auf deinem eigenen Server</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Neuste Medien"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Medienverarbeitung"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -515,11 +521,11 @@ msgstr "Anmeldevorgang fehlgeschlagen!"
#: mediagoblin/templates/mediagoblin/auth/login.html:44
msgid "Don't have an account yet?"
msgstr "Hast du noch keines? Es geht ganz einfach!"
msgstr "Hast du noch keines?"
#: mediagoblin/templates/mediagoblin/auth/login.html:45
msgid "Create one here!"
msgstr "Registriere dich hier!"
msgstr "Registriere dich einfach hier!"
#: mediagoblin/templates/mediagoblin/auth/login.html:51
msgid "Forgot your password?"
@ -528,7 +534,7 @@ msgstr "Passwort vergessen?"
#: mediagoblin/templates/mediagoblin/auth/register.html:28
#: mediagoblin/templates/mediagoblin/auth/register.html:36
msgid "Create an account!"
msgstr "Neues Konto registrieren!"
msgstr "Neues Nutzerkonto registrieren!"
#: mediagoblin/templates/mediagoblin/auth/register.html:40
msgid "Create"
@ -543,13 +549,42 @@ msgid ""
"your web browser:\n"
"\n"
"%(verification_url)s"
msgstr "Hallo %(username)s,\n\num dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in deinem Webbrowser öffnen:\n\n%(verification_url)s"
msgstr "Hallo %(username)s,\n\num deinNutzerkonto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in deinem Webbrowser öffnen:\n\n%(verification_url)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:23
#: mediagoblin/templates/mediagoblin/edit/attachments.html:35
#, python-format
msgid "Editing attachments for %(media_title)s"
msgstr ""
msgstr "Bearbeite Anhänge von %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Anhänge"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Anhang hinzufügen"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Abbrechen"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Änderungen speichern"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
@ -557,24 +592,8 @@ msgstr ""
msgid "Editing %(media_title)s"
msgstr "%(media_title)s bearbeiten"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Abbrechen"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Änderungen speichern"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "%(username)ss Kontoeinstellungen ändern"
@ -582,7 +601,7 @@ msgstr "%(username)ss Kontoeinstellungen ändern"
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:29
#, python-format
msgid "Editing %(collection_title)s"
msgstr ""
msgstr "Bearbeite %(collection_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:23
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
@ -600,13 +619,12 @@ msgstr "Medien mit Schlagwort: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Download"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Original"
@ -633,6 +651,56 @@ msgstr "Originaldatei"
msgid "WebM file (Vorbis codec)"
msgstr "WebM-Datei (Vorbis-Codec)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bild für %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr "Perspektive"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr "Objekthöhe"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -653,11 +721,11 @@ msgstr "WebM-Datei (640p; VP8/Vorbis)"
#: mediagoblin/templates/mediagoblin/submit/collection.html:26
msgid "Add a collection"
msgstr ""
msgstr "Eine Sammlung hinzufügen"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Hinzufügen"
@ -669,12 +737,12 @@ msgstr "Deine Medien"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:30
#, python-format
msgid "%(collection_title)s (%(username)s's collection)"
msgstr ""
msgstr "%(collection_title)s (%(username)s's collection)"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:39
#, python-format
msgid "%(collection_title)s by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
msgstr "%(collection_title)s by <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media.html:87
@ -686,14 +754,6 @@ msgstr "Bearbeiten"
msgid "Delete"
msgstr "Löschen"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -701,18 +761,18 @@ msgid "Really delete %(title)s?"
msgstr "Möchtest du %(title)s wirklich löschen?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Dauerhaft löschen"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:31
#, python-format
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
msgstr "Wirklich %(media_title)s aus %(collection_title)s entfernen?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
msgstr "Entfernen"
#: mediagoblin/templates/mediagoblin/user_pages/comment_email.txt:19
#, python-format
@ -736,12 +796,6 @@ msgstr "<a href=\"%(user_url)s\">%(username)s</a>s Medien"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Medien von <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bild für %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Einen Kommentar schreiben"
@ -768,32 +822,27 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Veröffentlicht am</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Anhänge"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Anhang hinzufügen"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Medien zu einem Album hinzufügen"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr ""
msgstr "%(title)s zur Sammlung hinzufügen"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
msgstr "Eine neue Sammlung hinzufügen"
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:29
msgid ""
"You can track the state of media being processed for your gallery here."
msgstr "Du kannst den Status der Medien, die sich gerade in Bearbeitung befinden, hier betrachten."
msgstr "Du kannst hier den Status der Medien verfolgen, die sich gerade in Bearbeitung befinden."
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:89
msgid "Your last 10 successful uploads"
@ -812,7 +861,7 @@ msgstr "Dieser Benutzer konnte leider nicht gefunden werden."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
msgid "Email verification needed"
msgstr "E-Mail-Bestätigung benötigt"
msgstr "E-Mail Aktivierung benötigt"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
msgid "Almost done! Your account still needs to be activated."
@ -821,15 +870,15 @@ msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
msgid ""
"An email should arrive in a few moments with instructions on how to do so."
msgstr "Gleich solltest du eine E-Mail erhalten, die dir erklärt, was du noch machen musst."
msgstr "Gleich solltest du eine E-Mail erhalten, die beschreibt was noch zu tun bleibt."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
msgid "In case it doesn't:"
msgstr "Wenn sie nicht ankommt:"
msgstr "Falls sie nicht ankommt:"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
msgid "Resend verification email"
msgstr "Bestätigungs-E-Mail erneut senden"
msgstr "Aktivierungsmail erneut senden"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
msgid ""
@ -842,11 +891,11 @@ msgstr "Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber
msgid ""
"If you are that person but you've lost your verification email, you can <a "
"href=\"%(login_url)s\">log in</a> and resend it."
msgstr "Wenn dir dieses Konto gehört und die Bestätigungsmail verloren gegangen ist, kannst du dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut senden."
msgstr "Wenn dir dieses Konto gehört und die Aktivierungsmail verloren gegangen ist, kannst du dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut senden."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
msgid "Here's a spot to tell others about yourself."
msgstr "Hier kannst du Anderen etwas über dich erzählen."
msgstr "Hier kannst Du Dich selbst beschreiben."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
@ -857,47 +906,31 @@ msgstr "Profil bearbeiten"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Kontoeinstellungen ändern"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Alle Medien von %(username)s anschauen"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Hier erscheinen deine Medien, sobald du etwas hochgeladen hast."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Medien hinzufügen"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Scheinbar gibt es hier noch nichts …"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(entfernen)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
msgid "In collections (%(collected)s)"
msgstr ""
msgstr "In den Sammlungen (%(collected)s)"
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
msgid "feed icon"
@ -911,7 +944,7 @@ msgstr "Atom-Feed"
msgid "Location"
msgstr "Aufnahmeort"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "In <a href=\"%(osm_url)s\">OpenStreetMap</a> öffnen"
@ -950,94 +983,120 @@ msgstr "Schlagwörter"
msgid "Could not read the image file."
msgstr "Die Bilddatei konnte nicht gelesen werden."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Hoppla!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "Ein Fehler trat auf"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Funktion nicht erlaubt"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr "So nicht!</p><p>Du wolltest eine Funktion verwenden zu der Du nicht die nötigen Rechte Rechte besitzt. Wolltest Du etwa schon wieder alle Nutzerkonten löschen?"
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr "Tut uns Leid, aber unter der angegebenen Adresse gibt es keine Seite!</p><p>Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell verschoben oder gelöscht."
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Ja, wirklich löschen"
#: mediagoblin/user_pages/forms.py:32
msgid "I am sure I want to remove this item from the collection"
msgstr ""
msgstr "Ich bin sicher, dass ich dieses Objekt aus der Sammlung entfernen möchte"
#: mediagoblin/user_pages/forms.py:35
msgid "-- Select --"
msgstr ""
msgstr "-- Auswählen --"
#: mediagoblin/user_pages/forms.py:37
msgid "Include a note"
msgstr ""
msgstr "Notiz anfügen"
#: mediagoblin/user_pages/lib.py:56
msgid "commented on your post"
msgstr "hat dein Medium kommentiert"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Ohh, der Kommentar war leer."
msgstr "Hoppla, der Kommentartext fehlte."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Dein Kommentar wurde gesendet!"
msgstr "Dein Kommentar wurde angenommen!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
msgstr "Du musst eine Sammlung auswählen oder hinzufügen"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
msgstr "\"%s\" ist bereits in der Sammlung \"%s\""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
msgstr "\"%s\" zur Sammlung \"%s\" hinzugefügt"
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
msgstr "Bitte prüfe deinen Einträge und versuche erneut."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Manche Dateien dieses Eintrags scheinen zu fehlen. Es wird trotzdem gelöscht."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Du hast das Medium gelöscht."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Das Medium wurde nicht gelöscht, da nicht angekreuzt hast, dass du es wirklich löschen möchtest."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei bitte vorsichtig."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
msgstr "Du hast das Objekt aus der Sammlung gelöscht."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
msgstr "Das Objekt wurde nicht aus der Sammlung entfernt, weil du nicht bestätigt hast, dass du dir sicher bist."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
msgstr "Du bist dabei ein Objekt aus der Sammlung eines anderen Nutzers zu entfernen. Sei vorsichtig."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
msgstr "Du hast die Sammlung \"%s\" gelöscht"
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
msgstr "Die Sammlung wurde nicht gelöscht, weil du nicht bestätigt hast, dass du dir sicher bist."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""
msgstr "Du bist dabei eine Sammlung eines anderen Nutzers zu entfernen. Sei vorsichtig."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"POT-Creation-Date: 2012-12-20 10:11-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -89,7 +89,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -100,7 +100,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -117,11 +117,11 @@ msgstr ""
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -160,20 +160,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -187,33 +187,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -230,7 +235,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -304,7 +309,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -329,62 +334,43 @@ msgstr ""
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -392,31 +378,56 @@ msgid ""
" href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, "
"an extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your"
" MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an "
@ -427,17 +438,10 @@ msgid ""
"your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid "Here you can track the state of media being processed on this instance."
msgstr ""
@ -545,30 +549,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -594,13 +611,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -627,6 +643,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -651,7 +717,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -680,14 +746,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -695,7 +753,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -704,7 +762,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -731,12 +789,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -763,13 +815,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -777,11 +824,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -850,41 +897,25 @@ msgstr ""
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -904,7 +935,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -943,6 +974,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're "
"sure the address is correct, maybe the page you're looking for has been "
"moved or deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -963,74 +1020,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid "Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed "
"with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were "
"sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid "You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -10,9 +10,9 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 11:41-0500\n"
"PO-Revision-Date: 2012-09-24 18:27+0000\n"
"Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -94,7 +94,7 @@ msgstr "Mi trovis neniun kun tiu salutnomo aŭ retpoŝtadreso."
msgid "You can now log in using your new password."
msgstr "Nun vi povas ensaluti per via nova pasvorto."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -105,7 +105,7 @@ msgid "Description of this work"
msgstr "Priskribo de ĉi tiu verko"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -121,11 +121,11 @@ msgstr "Etikedoj"
msgid "Separate tags by commas."
msgstr "Dividu la etikedojn per komoj."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "La distingiga adresparto"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "La distingiga adresparto ne povas esti malplena"
@ -164,20 +164,20 @@ msgstr "Enigu vian malnovan pasvorton por pruvi, ke ĉi tiu konto estas via."
msgid "New password"
msgstr "La nova pasvorto"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Retpoŝtu min kiam aliaj komentas pri miaj alŝutaĵoj."
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr "Priskribo de ĉi tiu kolekto"
msgstr "Priskribo de la kolekto"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -191,34 +191,40 @@ msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto."
msgid "You are editing another user's media. Proceed with caution."
msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Profilŝanĝoj estis konservitaj"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Kontagordoj estis konservitaj"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Malĝusta pasvorto"
#: mediagoblin/edit/views.py:287
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!title"
msgstr "Vi jam havas kolekton kun la nomo «%s»!title"
msgid "You already have a collection called \"%s\"!"
msgstr "Vi jam havas kolekton kun la nomo «%s»!"
#: mediagoblin/edit/views.py:290
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr "Ĉi tiu uzanto jam havas kolekton kun tiu distingiga adresparto."
#: mediagoblin/edit/views.py:307
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
msgstr "Vi redaktas kolekton de alia uzanto. Agu singardeme."
#: mediagoblin/gmg_commands/theme.py:58
msgid "Cannot link theme... no theme set\n"
@ -233,7 +239,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "Tamen trovitas — kaj forigitas — malnova simbola ligilo al dosierujo.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Mi pardonpetas, mi ne subtenas tiun dosiertipon :("
@ -303,7 +309,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -323,72 +329,48 @@ msgstr "Vi devas provizi dosieron."
msgid "Woohoo! Submitted!"
msgstr "Hura! Alŝutitas!"
#: mediagoblin/submit/views.py:211 mediagoblin/user_pages/views.py:215
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr ""
msgstr "Kolekto «%s» aldonitas!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Bildo de 404-koboldo penŝvitanta."
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oj!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Verŝajne ĉe ĉi tiu adreso ne estas paĝo. Ni bedaŭras!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo estis movita aŭ forigita."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Emblemo de MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Aldoni dosieron"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Konfirmu viecon de la retpoŝtadreso!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Aldoni dosieron"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Vidi vian profilon"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Elsaluti"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Ensaluti"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>, unu el la <a href=\"http://gnu.org/\">projektoj de GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -396,31 +378,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Disponigita laŭ la permesilo <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. Haveblas<a href=\"%(source_link)s\">fontotekstaro</a>."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Ŝanĝi kontagordojn"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Kontrolejo pri dosierpreparado."
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Ĉirkaŭrigardi"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Ĉi tiu retpaĝaro funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eksterordinare bonega programaro por gastigado de aŭdviddosieroj."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Por aldoni viajn proprajn dosierojn, afiŝi komentariojn ktp, vi povas ensaluti je via MediaGoblina konto."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Ĉu vi ankoraŭ ne havas tian? Ne malĝoju!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -428,17 +435,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Kreu konton en ĉi tiu retejo</a>\n aŭ\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">ekfunkciigu MediaGoblinon en via propra servilo</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Laste aldonitaj dosieroj"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Kontrolejo pri dosierpreparado."
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -547,30 +547,43 @@ msgstr "Sal %(username)s,\n\npor aktivigi vian GNU MediaGoblin konton, malfermu
msgid "Editing attachments for %(media_title)s"
msgstr "Aldoni kundosierojn por %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Kundosieroj"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Aldoni kundosieron"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Nuligi"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Konservi ŝanĝojn"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Priredaktado de %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Nuligi"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Konservi ŝanĝojn"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Ŝanĝado de kontagordoj de %(username)s"
@ -596,13 +609,12 @@ msgstr "Dosieroj kun etikedo: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Elŝuti"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Originalo"
@ -629,6 +641,56 @@ msgstr "originalan dosieron"
msgid "WebM file (Vorbis codec)"
msgstr "WebMan dosieron (kun Vorbisa kodaĵo)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bildo de «%(media_title)s»"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -649,11 +711,11 @@ msgstr "la WebM-dosieron (640p; VP8/Vorbis)"
#: mediagoblin/templates/mediagoblin/submit/collection.html:26
msgid "Add a collection"
msgstr ""
msgstr "Aldonado de kolekto"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Aldoni"
@ -665,12 +727,12 @@ msgstr "Aldono de via dosiero"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:30
#, python-format
msgid "%(collection_title)s (%(username)s's collection)"
msgstr ""
msgstr "%(collection_title)s (kolekto de %(username)s)"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:39
#, python-format
msgid "%(collection_title)s by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
msgstr "%(collection_title)s de <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media.html:87
@ -682,14 +744,6 @@ msgstr "Ŝanĝi"
msgid "Delete"
msgstr "Forigi"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -697,18 +751,18 @@ msgid "Really delete %(title)s?"
msgstr "Ĉu vere forigi %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Forigi senrevene"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:31
#, python-format
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
msgstr "Ĉu vere forigi %(media_title)s el %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
msgstr "Forigi"
#: mediagoblin/templates/mediagoblin/user_pages/comment_email.txt:19
#, python-format
@ -732,12 +786,6 @@ msgstr "Dosieroj de <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Просмотр файлов пользователя <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bildo de «%(media_title)s»"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Aldoni komenton"
@ -764,27 +812,22 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Aldonita je</h3>\n <p>la %(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Kundosieroj"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Aldoni kundosieron"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr ""
msgstr "Aldonado de %(title)s al kolekto"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
msgstr "Aldoni novan kolekton"
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:29
msgid ""
@ -853,47 +896,31 @@ msgstr "Redakti profilon"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Ŝanĝi kontagordojn"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Rigardi ĉiujn dosierojn de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Aldoni dosieron"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
msgid "In collections (%(collected)s)"
msgstr ""
msgstr "En %(collected)s kolekto(j)"
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
msgid "feed icon"
@ -907,7 +934,7 @@ msgstr "Atom-a informfluo"
msgid "Location"
msgstr "Loko"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Vidi sur <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -946,94 +973,120 @@ msgstr "Markita per"
msgid "Could not read the image file."
msgstr "Malsukcesis lego de la bildodosiero"
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oj!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Jes, mi volas forigi ĉi tion."
#: mediagoblin/user_pages/forms.py:32
msgid "I am sure I want to remove this item from the collection"
msgstr ""
msgstr "Jes, mi volas forigi ĉi tiun dosieron el la kolekto"
#: mediagoblin/user_pages/forms.py:35
msgid "-- Select --"
msgstr ""
msgstr "-- Elektu --"
#: mediagoblin/user_pages/forms.py:37
msgid "Include a note"
msgstr ""
msgstr "Rimarko"
#: mediagoblin/user_pages/lib.py:56
msgid "commented on your post"
msgstr "komentis je via afiŝo"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Oj, via komento estis malplena."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Via komento estis afiŝita!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
msgstr "Necesas elekti aŭ aldoni kolekton"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
msgstr "«%s» jam estas en la kolekto «%s»"
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
msgstr "«%s» estis aldonita al la kolekto «%s»"
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Iuj dosieroj de ĉi tiu ero ŝajne mankas. Mi tamen forigas."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Vi forigis la dosieron."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la markilo."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
msgstr "Vi forigis la dosieron el la kolekto."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
msgstr "La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la markilo."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
msgstr "Vi estas forigonta dosieron el kolekto de alia uzanto. Agu singardeme."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
msgstr "Vi forigis la kolekton «%s»"
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
msgstr "La kolekto ne estis forigita, ĉar vi ne konfirmis vian certecon per la markilo."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""
msgstr "Vi estas forigonta kolekton de alia uzanto. Agu singardeme."

View File

@ -18,9 +18,9 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 11:41-0500\n"
"PO-Revision-Date: 2012-09-24 17:10+0000\n"
"Last-Translator: Elesa <stardustprincess17@hotmail.com>\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/mediagoblin/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -102,7 +102,7 @@ msgstr "No se pudo encontrar a alguien con ese nombre de usuario o correo electr
msgid "You can now log in using your new password."
msgstr "Ahora tu puedes entrar usando tu nueva contraseña."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -113,7 +113,7 @@ msgid "Description of this work"
msgstr "Descripción de esta obra"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -129,11 +129,11 @@ msgstr "Etiquetas"
msgid "Separate tags by commas."
msgstr "Separa las etiquetas por comas."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Ficha"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "La ficha no puede estar vacía"
@ -172,20 +172,20 @@ msgstr "Escriba la anterior contraseña para demostrar que esta cuenta te perten
msgid "New password"
msgstr "Nueva contraseña"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Envíame un correo cuando otros escriban comentarios sobre mi contenido"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr "El título no puede estar vacío"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr "Descripción de esta colección"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -199,32 +199,38 @@ msgstr "Una entrada con esa ficha ya existe para este usuario."
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:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "¡Has añadido el adjunto %s!"
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Estás editando un perfil de usuario. Proceder con precaución."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Los cambios de perfil fueron salvados"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "las configuraciones de cuenta fueron salvadas"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Contraseña incorrecta"
#: mediagoblin/edit/views.py:287
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!title"
msgstr "Ya tienes una colección llamada \"%s\"!title"
msgid "You already have a collection called \"%s\"!"
msgstr "¡Ya tienes una colección llamada \"%s\"!"
#: mediagoblin/edit/views.py:290
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr "Una colección con esa ficha ya existe para este usuario/a."
#: mediagoblin/edit/views.py:307
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr "Estás editando la colección de otro usuario/a. Ten cuidado."
@ -241,7 +247,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "Sin embargo, se encontró un enlace simbólico de un directorio antiguo; ha sido borrado.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Lo sentidos, No soportamos ese tipo de archivo :("
@ -311,7 +317,7 @@ msgstr "La URI para redireccionar las aplicaciones, este campo es <strong>requer
msgid "This field is required for public clients"
msgstr "Este campo es requerido para los clientes públicos"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr "¡El cliente {0} ha sido registrado!"
@ -331,72 +337,48 @@ msgstr "Debes proporcionar un archivo."
msgid "Woohoo! Submitted!"
msgstr "¡Yujú! ¡Enviado!"
#: mediagoblin/submit/views.py:211 mediagoblin/user_pages/views.py:215
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr "¡Ya tienes una colección llamada \"%s\"!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr "¡Colección \"%s\" añadida!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Imagen de 404 goblin estresándose"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "¡Ups!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Parece no haber una página en esta dirección. ¡Lo sentimos!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Si estás seguro que la dirección es correcta, puede ser que la pagina haya sido movida o borrada."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Logo de MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "Cuenta de <a href=\"%(user_url)s\">%(user_name)s</a>"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "cerrar sesión"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Añadir contenido"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "¡Verifica tu email!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+Agregar contenido"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr "+ Añadir colección"
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Ver tu perfil"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Salir "
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Conectarse"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Proveído por <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un proyecto <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -404,31 +386,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Publicado bajo la <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. <a href=\"%(source_link)s\"> Código fuente</a> disponible."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr "Imagen de un goblin estresándose"
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Acciones"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr "Crear nueva colección"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Cambiar la configuración de la cuenta"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panel de procesamiento de contenido"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Explorar"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Hola, ¡bienvenido a este sitio de MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Este sitio está montado con <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un extraordinario programa libre para alojar, gestionar y compartir contenido multimedia."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Para añadir tus propios contenidos, dejar comentarios y más, puedes iniciar sesión con tu cuenta de MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "¿Aún no tienes una? ¡Es fácil!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -436,17 +443,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Crea una cuenta en este sitio</a>\n o\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instala Mediagoblin en tu propio servidor</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "El contenido más reciente"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panel de procesamiento de contenido"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -555,30 +555,43 @@ msgstr "Hola %(username)s,\n\npara activar tu cuenta de GNU MediaGoblin, abre la
msgid "Editing attachments for %(media_title)s"
msgstr "Editando archivos adjuntos a %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Adjuntos"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Agregar adjunto"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Guardar cambios"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Editando %(media_title)s "
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Guardar cambios"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Cambio de %(username)s la configuración de la cuenta "
@ -604,13 +617,12 @@ msgstr "Contenido etiquetado con: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Descargar"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Original"
@ -637,6 +649,56 @@ msgstr "Archivo original"
msgid "WebM file (Vorbis codec)"
msgstr "Archivo WebM (códec Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Imágenes para %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr "Alternar Rotar"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr "Perspectiva"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr "Frente"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr "Arriba"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr "Lateral"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr "WebGL"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr "Descargar modelo"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr "Formato de Archivo"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr "Altura del Objeto"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -661,7 +723,7 @@ msgstr "Añadir una colección"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Añadir "
@ -690,14 +752,6 @@ msgstr "Editar"
msgid "Delete"
msgstr "Borrar"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr "<p>\n%(collection_description)s\n</p>"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -705,7 +759,7 @@ msgid "Really delete %(title)s?"
msgstr "¿Realmente deseas eliminar %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Eliminar permanentemente"
@ -714,7 +768,7 @@ msgstr "Eliminar permanentemente"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr "¿Realmente quieres quitar %(media_title)s de %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr "Quitar"
@ -740,12 +794,6 @@ msgstr "Contenido de <a href=\"%(user_url)s\">%(username)s</a>'s"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Explorando contenido de <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Imágenes para %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Añadir un comentario"
@ -772,25 +820,20 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Añadido en</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Adjuntos"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Agregar adjunto"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Añadir contenido a la colección"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr "Añadir %(title)s a la colección"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr "Añadir una nueva colección"
@ -861,42 +904,26 @@ msgstr "Editar perfil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Este usuario (todavía) no ha completado su perfil."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Cambiar la configuración de la cuenta"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Ver todo el contenido de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Aquí es donde estará ubicado tu contenido, pero parece que aún no has agregado nada."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Añadir contenido"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Parece que aún no hay ningún contenido aquí..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr "<br />⏎ <a href=\"%(entry_url)s\">%(note)s</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(borrar)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
@ -915,7 +942,7 @@ msgstr "Atom feed"
msgid "Location"
msgstr "Locación"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Ver en <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -954,6 +981,32 @@ msgstr "Marcado con"
msgid "Could not read the image file."
msgstr "No se pudo leer el archivo de imagen."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "¡Ups!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "Ha ocurrido un error"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Operación no permitida"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr "¡Lo siento Dave, no puedo permitir que hagas eso!</p><p>Has intentado realizar una operación no permitida. ¿Has vuelto a intentar borrar todas las cuentas de usuario?"
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr "Parece que no hay ninguna página en esta dirección. ¡Lo siento!</p><p>Si estás seguro de que la dirección es correcta, quizá han borrado o movido la página que estás buscando."
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Estoy seguro de que quiero borrar esto"
@ -974,74 +1027,74 @@ msgstr "Incluir una nota"
msgid "commented on your post"
msgstr "comentó tu publicación"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Ups, tu comentario estaba vacío."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "¡Tu comentario ha sido publicado!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr "Tienes que seleccionar o añadir una colección"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr "%s\" ya está en la colección \"%s\""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr "\"%s\" añadido a la colección \"%s\""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr "Por favor, revisa tus entradas e inténtalo de nuevo."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Al parecer algunos de los ficheros en esta entrada se han perdido. Borrando igualmente."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Eliminaste el contenido"
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "El contenido no se eliminó porque no marcaste que estabas seguro."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
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 precaución."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr "Borraste el ítem de la colección."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr "El ítem no fue removido porque no confirmaste que estuvieras seguro/a."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr "Estás a punto de borrar un ítem de la colección de otro usuario. Procede con cuidado."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr "Borraste la colección \"%s\""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr "La colección no fue borrada porque no confirmaste que estuvieras seguro/a."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr "Estás a punto de borrar la colección de otro usuario. Procede con cuidado."

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -92,7 +92,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "برچسب"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -162,20 +162,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,33 +189,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr "شما در حال ویرایش رسانه کاربر دیگری هستید.با احتیاط عمل کنید"
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "شما در حال ویرایش نمایه کاربر دیگری هستید.با احتیاط عمل کنید."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -232,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -302,7 +307,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -327,62 +332,43 @@ msgstr "هورا!ثبت شد!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "اوه"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "متاسفانه به نظر نمی رسد که چنین صفحه ای در این آدرس وجود داشته باشد!"
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "لوگو مدیاگوبلین"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "ورود"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "پنل رسیدگی به رسانه ها"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "پنل رسیدگی به رسانه ها"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -541,30 +545,43 @@ msgstr "سلام %(username)s,\n\nبرای فعال سازی شناسه کارب
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "انصراف"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "ذخیره تغییرات"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "ویرایش %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "انصراف"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "ذخیره تغییرات"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -590,13 +607,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -623,6 +639,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -647,7 +713,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -676,14 +742,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -700,7 +758,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -726,12 +784,6 @@ msgstr "<a href=\"%(user_url)s\">%(username)s</a>'s رسانه های"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -758,13 +810,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -772,11 +819,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -847,41 +894,25 @@ msgstr "ویرایش نمایه"
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "نمایش تمامی رسانه های %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -901,7 +932,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -940,6 +971,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "اوه"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -960,74 +1017,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -104,7 +104,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -120,11 +120,11 @@ msgstr "Etiquettas"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -163,20 +163,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -190,33 +190,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -233,7 +238,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -303,7 +308,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -328,62 +333,43 @@ msgstr ""
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Initiar session"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +377,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +434,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -542,30 +546,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Cancellar"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Cancellar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -591,13 +608,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -624,6 +640,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +714,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -677,14 +743,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +750,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -701,7 +759,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -727,12 +785,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -759,13 +811,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -773,11 +820,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -848,41 +895,25 @@ msgstr ""
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -902,7 +933,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -941,6 +972,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -961,74 +1018,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -95,7 +95,7 @@ msgstr "Impossibile trovare qualcuno con questo nome utente o password."
msgid "You can now log in using your new password."
msgstr "Ora puoi effettuare l'accesso con la nuova password."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -106,7 +106,7 @@ msgid "Description of this work"
msgstr "Descrizione di questo lavoro"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -122,11 +122,11 @@ msgstr "Tags"
msgid "Separate tags by commas."
msgstr "Separa le tags con la virgola."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -165,20 +165,20 @@ msgstr "Inserisci la vecchia password per dimostrare di essere il proprietario d
msgid "New password"
msgstr "Nuova password"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Inviami messaggi email quando altre persone commentano i miei files multimediali"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -192,33 +192,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr "Stai modificando files multimediali di un altro utente. Procedi con attenzione."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Stai modificando il profilo di un utente. Procedi con attenzione."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Cambiamenti del profilo salvati"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Impostazioni del profilo salvate"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Password errata"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -235,7 +240,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Mi dispiace, non supporto questo tipo di file :("
@ -305,7 +310,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -330,62 +335,43 @@ msgstr "Evviva! Caricato!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Immagine di 404 folletti che stressano"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oops!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Non sembra esserci una pagina a questo indirizzo. Spiacente!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Se sei sicuro che l'indirizzo è corretto, forse la pagina che stai cercando è stata spostata o cancellata."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Simbolo di MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Aggiungi files multimediali"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifica la tua email!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Aggiungi files multimediali"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Vedi il tuo profilo"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Esci"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Accedi"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Realizzato con <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un progetto <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -393,31 +379,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Rilasciato con licenza <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. <a href=\"%(source_link)s\">Codice sorgente</a> disponibile."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Cambia le impostazioni dell'account"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Pannello di elaborazione files multimediali"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Esplora"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Ciao, benvenuto in questo sito MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Questo sito sta utilizzando <a href=\"http://mediagoblin.org\">Mediagoblin</a>, un ottimo programma per caricare e condividere files multimediali."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Per aggiungere i tuoi file multimediali, scrivere commenti e altro puoi accedere con il tuo account MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Non ne hai già uno? E' semplice!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -425,17 +436,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Crea un account in questo sito</a>\n oppure\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Installa MediaGoblin sul tuo server</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Files multimediali più recenti"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Pannello di elaborazione files multimediali"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -544,30 +548,43 @@ msgstr "Ciao %(username)s,\n\nper attivare il tuo account GNU MediaGoblin, apri
msgid "Editing attachments for %(media_title)s"
msgstr "Stai modificando gli allegati di %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Allegati"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Aggiungi allegato"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Annulla"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salva i cambiamenti"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Stai modificando %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Annulla"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salva i cambiamenti"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Stai cambiando le impostazioni dell'account di %(username)s"
@ -593,13 +610,12 @@ msgstr "File taggato con: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Scarica"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Originale"
@ -626,6 +642,56 @@ msgstr "File originario"
msgid "WebM file (Vorbis codec)"
msgstr "File WebM (codec Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -650,7 +716,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Aggiungi"
@ -679,14 +745,6 @@ msgstr "Modifica"
msgid "Delete"
msgstr "Elimina"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -694,7 +752,7 @@ msgid "Really delete %(title)s?"
msgstr "Vuoi davvero eliminare %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Elimina definitivamente"
@ -703,7 +761,7 @@ msgstr "Elimina definitivamente"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -729,12 +787,6 @@ msgstr "Files multimediali di <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Stai guardando i files multimediali di <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Aggiungi un commento"
@ -761,25 +813,20 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Aggiunto il</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Allegati"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Aggiungi allegato"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -850,41 +897,25 @@ msgstr "Modifica profilo"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Questo utente non ha (ancora) compilato il proprio profilo."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Cambia le impostazioni dell'account"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Visualizza tutti i files multimediali di %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Qui è dove appariranno i tuoi files multimediali, ma sembra che tu non abbia ancora aggiunto niente."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Aggiungi files multimediali"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Sembra che non ci sia ancora nessun file multimediale qui..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -904,7 +935,7 @@ msgstr "Atom feed"
msgid "Location"
msgstr "Posizione"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Visualizza su <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -943,6 +974,32 @@ msgstr "Taggato con"
msgid "Could not read the image file."
msgstr "Impossibile leggere il file immagine."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oops!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Sono sicuro di volerlo eliminare"
@ -963,74 +1020,74 @@ msgstr ""
msgid "commented on your post"
msgstr "ha commentato il tuo post"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Oops, il tuo commento era vuoto."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Il tuo commento è stato aggiunto!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Hai eliminato il file."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Il file non è stato eliminato perchè non hai confermato di essere sicuro."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Stai eliminando un file multimediale di un altro utente. Procedi con attenzione."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -92,7 +92,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "タグ"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "スラグ"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "スラグは必要です。"
@ -162,20 +162,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,33 +189,38 @@ msgstr "そのスラグを持つエントリは、このユーザーは既に存
msgid "You are editing another user's media. Proceed with caution."
msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。"
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。"
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -232,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -302,7 +307,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -327,62 +332,43 @@ msgstr "投稿終了!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "ログイン"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -541,30 +545,43 @@ msgstr "%(username)s様へ\n\nGNU MediaGoblinアカウントを検証にする
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "キャンセル"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "投稿する"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "%(media_title)sを編集中"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "キャンセル"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "投稿する"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -590,13 +607,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -623,6 +639,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -647,7 +713,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -676,14 +742,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -700,7 +758,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -726,12 +784,6 @@ msgstr "<a href=\"%(user_url)s\">%(username)s</a>さんのコンテンツ"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -758,13 +810,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -772,11 +819,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -847,41 +894,25 @@ msgstr "プロフィールを編集"
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "%(username)sさんのコンテンツをすべて見る"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -901,7 +932,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -940,6 +971,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -960,74 +1017,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr "Kon niemand vinden met die gebruikersnaam of dat e-mailadres."
msgid "You can now log in using your new password."
msgstr "Je kunt nu inloggen met je nieuwe wachtwoord."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -104,7 +104,7 @@ msgid "Description of this work"
msgstr "Beschrijving van dit werk"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -120,11 +120,11 @@ msgstr "Etiket"
msgid "Separate tags by commas."
msgstr "Hou labels gescheiden met komma's."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Slug"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "De slug kan niet leeg zijn"
@ -163,20 +163,20 @@ msgstr "Vul je oude wachtwoord in om te bewijzen dat dit jouw account is"
msgid "New password"
msgstr "Nieuw wachtwoord"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -190,33 +190,38 @@ msgstr "Er bestaat al een met die slug voor deze gebruiker."
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:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Profielaanpassingen opgeslagen"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Accountinstellingen opgeslagen"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Verkeerd wachtwoord"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -233,7 +238,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Sorry, dat bestandstype wordt niet ondersteunt."
@ -303,7 +308,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -328,62 +333,43 @@ msgstr "Mooizo! Toegevoegd!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Afbeelding van de 404 goblin onder stress"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oeps!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Het lijkt erop dat er geen pagina bestaat op dit adres. Sorry!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Als je zeker weet dat het adres klopt is de pagina misschien verplaatst of verwijderd."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "MediaGoblin logo"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Voeg media toe"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifieer je e-mailadres!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Media toevoegen"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Profiel weergeven"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Afmelden"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Inloggen"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Hier draait <a href=\"http://mediagoblin.org\">MediaGoblin</a>, een <a href=\"http://gnu.org/\">GNU</a> project."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +377,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Uitgegeven onder de <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>-licentie. <a href=\"%(source_link)s\">Broncode</a> available."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Accountinstellingen aanpassen"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Mediaverwerkingspaneel"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Verkennen"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Hoi, welkom op deze MediaGoblin website!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Deze website draait <a href=\"http://mediagoblin.org\">MediaGoblin</a>, een buitengewoon goed stuk software voor mediahosting."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Heb je er nog geen? Het is heel eenvoudig!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +434,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "&lt;a class=\"button_action_highlight\" href=\"%(register_url)s\"&gt;Creëer een account op deze website&lt;/a&gt;\n of\n &lt;a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\"&gt;Gebruik MediaGoblin op je eigen server&lt;/a&gt;"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Nieuwste media"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Mediaverwerkingspaneel"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -542,30 +546,43 @@ msgstr "Hallo %(username)s , open de volgende URL in uw webbrowser om uw GNU Med
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Annuleren"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Wijzigingen opslaan"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "%(media_title)s aanpassen"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Annuleren"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Wijzigingen opslaan"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "%(username)ss accountinstellingen aanpassen"
@ -591,13 +608,12 @@ msgstr "Media met het label: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Origineel"
@ -624,6 +640,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Afbeelding voor %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +714,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Voeg toe"
@ -677,14 +743,6 @@ msgstr "Pas aan"
msgid "Delete"
msgstr "Verwijderen"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +750,7 @@ msgid "Really delete %(title)s?"
msgstr "Zeker weten dat je %(title)s wil verwijderen?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Permanent verwijderen"
@ -701,7 +759,7 @@ msgstr "Permanent verwijderen"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -727,12 +785,6 @@ msgstr "Media van <a href=\"%(user_url)s\"> %(username)s </a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Blader door media van <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Afbeelding voor %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Geef een reactie"
@ -759,13 +811,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Toegevoegd op</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -773,11 +820,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -848,41 +895,25 @@ msgstr "Profiel aanpassen."
msgid "This user hasn't filled in their profile (yet)."
msgstr "Deze gebruiker heeft zijn of haar profiel (nog) niet ingevuld."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Accountinstellingen aanpassen"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Bekijk alle media van %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Dit is waar je nieuwe media zal verschijnen, maar het lijkt erop dat je nog niets heb toegevoegd."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Voeg media toe"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Het lijkt erop dat er nog geen media is."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -902,7 +933,7 @@ msgstr "Atom feed"
msgid "Location"
msgstr "Locatie"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Bekijken op <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -941,6 +972,32 @@ msgstr "Getagged met"
msgid "Could not read the image file."
msgstr "Kon het afbeeldingsbestand niet lezen."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oeps!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Ik weet zeker dat ik dit wil verwijderen."
@ -961,74 +1018,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Oeps, je bericht was leeg."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Je bericht is geplaatst!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Je hebt deze media verwijderd."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Deze media was niet verwijderd omdat je niet hebt aangegeven dat je het zeker weet."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Je staat op het punt de media van iemand anders te verwijderen. Pas op."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -3,14 +3,14 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
# <odin.omdal@gmail.com>, 2011, 2012.
# <odin.omdal@gmail.com>, 2011-2012.
msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 16:04+0000\n"
"Last-Translator: velmont <odin.omdal@gmail.com>\n"
"Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/mediagoblin/language/nn_NO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -92,7 +92,7 @@ msgstr "Fann ingen med det brukarnamnet eller passordet."
msgid "You can now log in using your new password."
msgstr "Du kan no logga inn med det nye passordet ditt."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -100,10 +100,10 @@ msgstr "Tittel"
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
msgid "Description of this work"
msgstr "Skildring av mediefila"
msgstr "Skildring av verk"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "Merkelappar"
msgid "Separate tags by commas."
msgstr "Separer merkelappar med komma."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Nettnamn"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Nettnamnet kan ikkje vera tomt"
@ -131,7 +131,7 @@ msgstr "Nettnamnet kan ikkje vera tomt"
msgid ""
"The title part of this media's address. You usually don't need to change "
"this."
msgstr "Nettnamnet (adressetittel) for mediefila di. Trengst ikkje endrast."
msgstr "Nettnamnet (adressetittel) for verket di. Trengst ikkje endrast."
#: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41
#: mediagoblin/templates/mediagoblin/utils/license.html:20
@ -162,24 +162,24 @@ msgstr "Skriv inn det gamle passordet ditt for å stadfesta at du eig denne kont
msgid "New password"
msgstr "Nytt passord"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
msgstr "Send meg epost når andre kjem med innspel på verka mine."
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
msgstr "Tittelen kjan ikkje vera tom"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
msgstr "Forklaringa til denne samlinga"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
msgstr ""
msgstr "Tittel-delen av denne samlinga si adresse. Du treng normalt sett ikkje endra denne."
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@ -187,96 +187,101 @@ msgstr "Eit innlegg med denne adressetittelen finst allereie."
#: mediagoblin/edit/views.py:86
msgid "You are editing another user's media. Proceed with caution."
msgstr "Trå varsamt, du endrar nokon andre sine mediefiler."
msgstr "Trå varsamt, du endrar nokon andre sine verk."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "La til vedlegg %s."
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Trå varsamt, du endrar nokon andre sin profil."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Lagra endring av profilen"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Lagra kontoinstellingar"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Feil passord"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
msgstr "Du har allereie ei samling med namn «%s»."
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
msgstr "Ei samling med den nettadressa finst allereie for denne brukaren."
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
msgstr "Du endrar ein annan brukar si samling. Trå varsamt."
#: mediagoblin/gmg_commands/theme.py:58
msgid "Cannot link theme... no theme set\n"
msgstr ""
msgstr "Cannot link theme... no theme set\n"
#: mediagoblin/gmg_commands/theme.py:71
msgid "No asset directory for this theme\n"
msgstr ""
msgstr "No asset directory for this theme\n"
#: mediagoblin/gmg_commands/theme.py:74
msgid "However, old link directory symlink found; removed.\n"
msgstr ""
msgstr "However, old link directory symlink found; removed.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Orsak, stør ikkje den filtypen :("
#: mediagoblin/media_types/video/processing.py:35
msgid "Video transcoding failed"
msgstr ""
msgstr "Skjedde noko gale med video transkodinga"
#: mediagoblin/plugins/oauth/forms.py:26
msgid "Client ID"
msgstr ""
msgstr "Klient-ID (client ID)"
#: mediagoblin/plugins/oauth/forms.py:28
msgid "Next URL"
msgstr ""
msgstr "Neste adresse (next URL)"
#: mediagoblin/plugins/oauth/forms.py:30
msgid "Allow"
msgstr ""
msgstr "Godta"
#: mediagoblin/plugins/oauth/forms.py:31
msgid "Deny"
msgstr ""
msgstr "Nekt"
#: mediagoblin/plugins/oauth/forms.py:35
msgid "Name"
msgstr ""
msgstr "Namn"
#: mediagoblin/plugins/oauth/forms.py:36
msgid "The name of the OAuth client"
msgstr ""
msgstr "Namnet til OAuth-klienten"
#: mediagoblin/plugins/oauth/forms.py:37
msgid "Description"
msgstr ""
msgstr "Forklaring"
#: mediagoblin/plugins/oauth/forms.py:39
msgid ""
"This will be visible to users allowing your\n"
" application to authenticate as them."
msgstr ""
msgstr "Dette vil vera synleg for brukarar som godtek applikasjonen din til å autentisera dei."
#: mediagoblin/plugins/oauth/forms.py:41
msgid "Type"
msgstr ""
msgstr "Type"
#: mediagoblin/plugins/oauth/forms.py:46
msgid ""
@ -286,29 +291,29 @@ msgid ""
" <strong>Public</strong> - The client can't make confidential\n"
" requests to the GNU MediaGoblin instance (e.g. client-side\n"
" JavaScript client)."
msgstr ""
msgstr "<strong>Confidential</strong> - Konfidensielt, på engelsk: The client can\n make requests to the GNU MediaGoblin instance that can not be\n intercepted by the user agent (e.g. server-side client).<br />\n<strong>Public</strong> - Open, på engelsk: The client can't make confidential\n requests to the GNU MediaGoblin instance (e.g. client-side\n JavaScript client)."
#: mediagoblin/plugins/oauth/forms.py:53
msgid "Redirect URI"
msgstr ""
msgstr "Omdirigering URI"
#: mediagoblin/plugins/oauth/forms.py:55
msgid ""
"The redirect URI for the applications, this field\n"
" is <strong>required</strong> for public clients."
msgstr ""
msgstr "Omdirigerings-URI-en for programmene. Denne feltet <strong>krevst</strong> for opne (public) klientar."
#: mediagoblin/plugins/oauth/forms.py:67
msgid "This field is required for public clients"
msgstr ""
msgstr "Dette feltet krevst for opne (public) klientar"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
msgstr "Klienten {0} er registrert."
#: mediagoblin/processing/__init__.py:138
msgid "Invalid file given for media type."
msgstr "Ugyldig fil for mediatypen."
msgstr "Ugyldig fil for medietypen."
#: mediagoblin/submit/forms.py:26
msgid "File"
@ -325,64 +330,45 @@ msgstr "Johoo! Opplasta!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr ""
msgstr "La til samlinga «%s»."
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Bilete av stressa 404-tusse."
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oops."
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Det ser ikkje ut til å vera noko her... Orsak."
#: mediagoblin/templates/mediagoblin/404.html:28
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, so er sida truleg flytta eller sletta."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "<a href=\"%(user_url)s\">%(user_name)s</a> sin konto"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "Logg ut"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Legg til verk"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifiser epostadressa di."
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Legg til medie"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Sjå profilen din"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Logg ut"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Logg inn"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Drive av <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eit <a href=\"http://gnu.org/\">GNU</a>-prosjekt."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Lisensiert med <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. <a href=\"%(source_link)s\">Kjeldekode</a> er tilgjengeleg."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr "Bilete av stressa goblin"
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Handlingar"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr "Lag ny samling"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Endra kontoinstellingar"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Verkprosesseringspanel"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Utforsk"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Heihei, velkomen til denne MediaGoblin-sida."
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Denne sida køyrer <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eit superbra program for å visa fram mediefiler."
msgstr "Denne sida køyrer <a href=\"http://mediagoblin.org\">MediaGoblin</a>, eit superbra program for å visa fram dine kreative verk."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
msgstr "Vil du leggja til eigne verk og innpel, so må du logga inn."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Har du ikkje ein enno? Det er enkelt!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,50 +433,43 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Opprett ein konto på denne sida</a> eller <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">set opp MediaGoblin på eigen tenar</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Nyaste mediefiler"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Mediehandsamingspanel"
msgstr "Nyaste verk"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
msgstr ""
msgstr "Hald oppsyn med statusen for prosessering av verka dine her."
#: mediagoblin/templates/mediagoblin/admin/panel.html:32
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:32
msgid "Media in-processing"
msgstr "Media under handsaming"
msgstr "Verk under prosessesering"
#: mediagoblin/templates/mediagoblin/admin/panel.html:58
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:56
msgid "No media in-processing"
msgstr "Ingen media under handsaming"
msgstr "Ingen verk vert prosessert"
#: mediagoblin/templates/mediagoblin/admin/panel.html:61
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:59
msgid "These uploads failed to process:"
msgstr "Klarte ikkje handsama desse opplasta filene:"
msgstr "Klarte ikkje prosessera desse opplasta filene:"
#: mediagoblin/templates/mediagoblin/admin/panel.html:90
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:86
msgid "No failed entries!"
msgstr ""
msgstr "Ingen feila filer."
#: mediagoblin/templates/mediagoblin/admin/panel.html:92
msgid "Last 10 successful uploads"
msgstr ""
msgstr "Dei siste ti opplastningane"
#: mediagoblin/templates/mediagoblin/admin/panel.html:112
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:107
msgid "No processed entries, yet!"
msgstr ""
msgstr "Ingenting prossesert, enno."
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:28
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:36
@ -539,7 +543,36 @@ msgstr "Hei %(username)s,\n\nopna fylgjande netadresse i netlesaren din for å a
#: mediagoblin/templates/mediagoblin/edit/attachments.html:35
#, python-format
msgid "Editing attachments for %(media_title)s"
msgstr ""
msgstr "Endrar vedlegg for %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Vedlegg"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Legg ved vedlegg"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Bryt av"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Lagra"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
@ -547,24 +580,8 @@ msgstr ""
msgid "Editing %(media_title)s"
msgstr "Endrar %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Bryt av"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Lagra"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Endrar kontoinnstellingane til %(username)s"
@ -572,7 +589,7 @@ msgstr "Endrar kontoinnstellingane til %(username)s"
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:29
#, python-format
msgid "Editing %(collection_title)s"
msgstr ""
msgstr "Endrar %(collection_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:23
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
@ -586,17 +603,16 @@ msgstr "Endrar profilen til %(username)s"
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
#, python-format
msgid "Media tagged with: %(tag_name)s"
msgstr "Media merka med: %(tag_name)s"
msgstr "Verk merka med: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Last ned"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Opphavleg"
@ -617,12 +633,62 @@ msgstr "Du kan skaffa ein moderne netlesar som kan spela av dette lydklippet hj
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:60
#: mediagoblin/templates/mediagoblin/media_displays/video.html:56
msgid "Original file"
msgstr ""
msgstr "Opphavleg fil"
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:63
msgid "WebM file (Vorbis codec)"
msgstr "WebM-fil (Vorbis-kodek)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bilete for %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr "Slå av/på rotering"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr "Perspektiv"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr "Front"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr "Topp"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr "Side"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr "WebGL"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr "Last ned modell"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr "Filformat"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr "Objekthøgd"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -639,32 +705,32 @@ msgstr "Du kan skaffa ein moderne netlesar som kan spela av denne videoen hjå <
#: mediagoblin/templates/mediagoblin/media_displays/video.html:59
msgid "WebM file (640p; VP8/Vorbis)"
msgstr ""
msgstr "WebM fil (640p; VP8/Vorbis)"
#: mediagoblin/templates/mediagoblin/submit/collection.html:26
msgid "Add a collection"
msgstr ""
msgstr "Legg til ei samling"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Legg til"
#: mediagoblin/templates/mediagoblin/submit/start.html:23
#: mediagoblin/templates/mediagoblin/submit/start.html:30
msgid "Add your media"
msgstr "Legg til mediefiler"
msgstr "Legg til verk"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:30
#, python-format
msgid "%(collection_title)s (%(username)s's collection)"
msgstr ""
msgstr "%(collection_title)s (%(username)s si samling)"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:39
#, python-format
msgid "%(collection_title)s by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
msgstr "%(collection_title)s av <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media.html:87
@ -676,14 +742,6 @@ msgstr "Endra"
msgid "Delete"
msgstr "Slett"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,46 +749,40 @@ msgid "Really delete %(title)s?"
msgstr "Vil du verkeleg sletta %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Slett permanent"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:31
#, python-format
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
msgstr "Fjerna %(media_title)s frå %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
msgstr "Fjern"
#: mediagoblin/templates/mediagoblin/user_pages/comment_email.txt:19
#, python-format
msgid ""
"Hi %(username)s,\n"
"%(comment_author)s commented on your post (%(comment_url)s) at %(instance_name)s\n"
msgstr ""
msgstr "Hei %(username)s,\n%(comment_author)s kommenterte innlegget ditt (%(comment_url)s) hjå %(instance_name)s\n"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
msgid "%(username)s's media"
msgstr "Filene til %(username)s"
msgstr "Verka til %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
#, python-format
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
msgstr "<a href=\"%(user_url)s\">%(username)s</a> sine mediefiler"
msgstr "<a href=\"%(user_url)s\">%(username)s</a> sine verk"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:46
#, python-format
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Bilete for %(media_title)s"
msgstr "❖ Ser på <a href=\"%(user_url)s\">%(username)s</a> sine verk"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
@ -758,36 +810,31 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Lagt til</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Legg til verk til samling"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr ""
msgstr "Putt %(title)s inn i samling"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
msgstr "Legg til ei ny samling"
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:29
msgid ""
"You can track the state of media being processed for your gallery here."
msgstr "Sjå status for mediehandsaming av biletene dine her."
msgstr "Sjå status for prosessering av verka dine her."
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:89
msgid "Your last 10 successful uploads"
msgstr ""
msgstr "Dine ti siste opplastningar."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
@ -847,47 +894,31 @@ msgstr "Endra profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Brukaren har ikkje fylt ut profilen sin (enno)."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Endra kontoinstellingar"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Sjå alle %(username)s sine mediefiler"
msgstr "Sjå alle %(username)s sine verk"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Her kjem mediefilene dine."
msgstr "Her kjem verka dine."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Legg til mediefiler"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Ser ikkje ut til at det finst nokon mediefiler her nett no."
msgstr "Ser ikkje ut til at det finst nokon verk her nett no."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(fjern)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
msgid "In collections (%(collected)s)"
msgstr ""
msgstr "I samlingar (%(collected)s)"
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
msgid "feed icon"
@ -901,7 +932,7 @@ msgstr "Atom-kjelde"
msgid "Location"
msgstr "Stad"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Sjå på <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -940,94 +971,120 @@ msgstr "Merka med"
msgid "Could not read the image file."
msgstr "Klarte ikkje lesa biletefila."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oops."
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "Noko gjekk gale"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Ulovleg operasjon"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr "Orsak Dave, eg kan ikkje la deg gjera det!&lt;HAL2000&gt;</p>\n<p>Du prøvde å gjera noko du ikkje har løyve til. Prøvar du å sletta alle brukarkonti no igjen?"
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr "Ser ikkje ut til å finnast noko her. Orsak.</p>\n<p>Dersom du er sikker på at adressa finst, so er ho truleg flytta eller sletta."
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Eg er sikker eg vil sletta dette"
#: mediagoblin/user_pages/forms.py:32
msgid "I am sure I want to remove this item from the collection"
msgstr ""
msgstr "Eg er sikker på at eg vil fjerna dette frå samlinga"
#: mediagoblin/user_pages/forms.py:35
msgid "-- Select --"
msgstr ""
msgstr "-- Vel --"
#: mediagoblin/user_pages/forms.py:37
msgid "Include a note"
msgstr ""
msgstr "Legg ved eit notat"
#: mediagoblin/user_pages/lib.py:56
msgid "commented on your post"
msgstr ""
msgstr "kom med innspel på innlegget ditt"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Vops, innspelet ditt var tomt."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Innspelet ditt er lagt til."
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
msgstr "Du må velja eller laga ei samling"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
msgstr "«%s» er allereie i samling «%s»"
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
msgstr "«%s» lagt til samling «%s»"
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
msgstr "Sjekk filene dine og prøv omatt."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
msgstr "Nokre av filene ser ut til å mangla. Slettar likevel."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Du sletta fila."
msgstr "Du sletta verket."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Sletta ikkje fila fordi du ikkje sa du var sikker."
msgstr "Sletta ikkje verket."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
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."
msgstr "Du er i ferd med å sletta ein annan brukar sine verk. Trå varsamt."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
msgstr "Du fjerna fila frå samlinga."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
msgstr "Fila var ikkje fjerna fordi du ikkje var sikker."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
msgstr "Du er i ferd med å fjerna ei fil frå ein annan brukar si samling. Trå varsamt."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
msgstr "Samlinga «%s» sletta"
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
msgstr "Sletta ikkje samlinga."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""
msgstr "Du er i ferd med å sletta ein annan brukar si samling. Trå varsamt."

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -92,7 +92,7 @@ msgstr "Nie znaleziono nikogo o takiej nazwie użytkownika lub adresie e-mail."
msgid "You can now log in using your new password."
msgstr "Teraz możesz się zalogować używając nowe hasło."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr "Opis tej pracy"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "Znaczniki"
msgid "Separate tags by commas."
msgstr "Rozdzielaj znaczniki przecinkami."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Slug"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Slug nie może być pusty"
@ -162,20 +162,20 @@ msgstr "Wprowadź swoje stare hasło aby udowodnić, że to twoje konto."
msgid "New password"
msgstr "Nowe hasło"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Powiadamiaj mnie e-mailem o komentarzach do moich mediów"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr "Tytuł nie może być pusty"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr "Opis tej kolekcji"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,33 +189,38 @@ msgstr "Adres z tym slugiem dla tego użytkownika już istnieje."
msgid "You are editing another user's media. Proceed with caution."
msgstr "Edytujesz media innego użytkownika. Zachowaj ostrożność."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Edytujesz profil innego użytkownika. Zachowaj ostrożność."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Zapisano zmiany profilu"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Zapisano ustawienia konta"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Nieprawidłowe hasło"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr "Kolekcja \"%s\" już istnieje!"
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr "Kolekcja tego użytkownika z takim slugiem już istnieje."
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr "Edytujesz kolekcję innego użytkownika. Zachowaj ostrożność."
@ -232,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "Znaleziono stary odnośnik symboliczny do katalogu; usunięto.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "NIestety, nie obsługujemy tego typu plików :-("
@ -302,7 +307,7 @@ msgstr "Przekierowanie URI dla aplikacji, to pole\n jest <strong>wyma
msgid "This field is required for public clients"
msgstr "To pole jest wymagane dla klientów publicznych"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr "Klient {0} został zarejestrowany!"
@ -327,62 +332,43 @@ msgstr "Hura! Wysłano!"
msgid "Collection \"%s\" added!"
msgstr "Kolekcja \"%s\" została dodana!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Grafika zestresowanego goblina 404."
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Ups!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Niestety, nie ma strony o takim adresie!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Jeśli twoim zdaniem ten adres jest prawidłowy, to może poszukiwana strona została przeniesiona lub usunięta."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Logo MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Dodaj media"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Zweryfikuj swój adres e-mail!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Dodaj media"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr "+ Dodaj kolekcję"
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Zobacz swój profil"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Wyloguj się"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Zaloguj się"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Obsługiwane przez <a href=\"http://mediagoblin.org\">MediaGoblin</a>, projekt <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Opublikowane na licencji <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. Dostępny jest <a href=\"%(source_link)s\">kod źródłowy</a>."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Zmień ustawienia konta"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panel przetwarzania mediów"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Odkrywaj"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Cześć, witaj na stronie MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Ten serwis działa w oparciu o <a href=\"http://mediagoblin.org\">MediaGoblin</a>, świetne oprogramowanie do publikowania mediów."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Aby dodawać swoje pliki, komentować i wykonywać inne czynności, możesz się zalogować na swoje konto MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Jeszcze go nie masz? To proste!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Utwórz konto w tym serwisie</a>\n lub\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">załóż własny serwis MediaGoblin</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Najnowsze media"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panel przetwarzania mediów"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -541,30 +545,43 @@ msgstr "Cześć %(username)s,\n\naby aktywować twoje konto GNU MediaGoblin, otw
msgid "Editing attachments for %(media_title)s"
msgstr "Edycja załączników do %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Załączniki"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Dodaj załącznik"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Anuluj"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Zapisz zmiany"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Edytowanie %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Anuluj"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Zapisz zmiany"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Zmiana ustawień konta %(username)s"
@ -590,13 +607,12 @@ msgstr "Media ze znacznikami: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Pobierz"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Oryginał"
@ -623,6 +639,56 @@ msgstr "Oryginalny plik"
msgid "WebM file (Vorbis codec)"
msgstr "plik WebM (kodek Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Grafika dla %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -647,7 +713,7 @@ msgstr "Dodaj kolekcję"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Dodaj"
@ -676,14 +742,6 @@ msgstr "Edytuj"
msgid "Delete"
msgstr "Usuń"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr "<p>\n %(collection_description)s\n </p>"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr "Na pewno usunąć %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Usuń na stałe"
@ -700,7 +758,7 @@ msgstr "Usuń na stałe"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr "Na pewno usunąć %(media_title)s z %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr "Usuń"
@ -726,12 +784,6 @@ msgstr "media użytkownika <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Przeglądanie mediów użytkownika <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Grafika dla %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Dodaj komentarz"
@ -758,25 +810,20 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Dodane</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Załączniki"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Dodaj załącznik"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr "Dodaj %(title)s do kolekcji"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr "Dodaj nową kolekcję"
@ -847,42 +894,26 @@ msgstr "Edytuj profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Ten użytkownik nie wypełnił (jeszcze) opisu swojego profilu."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Zmień ustawienia konta"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Zobacz wszystkie media użytkownika %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Tu będą widoczne twoje media, ale na razie niczego tu jeszcze nie ma."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Dodaj media"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Tu nie ma jeszcze żadnych mediów..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr "<br />\n <a href=\"%(entry_url)s\">%(note)s</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr "<br /><a href=\"%(remove_url)s\" class=\"remove\">(usuń)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
@ -901,7 +932,7 @@ msgstr "Kanał Atom"
msgid "Location"
msgstr "Położenie"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Zobacz na <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -940,6 +971,32 @@ msgstr "Znaczniki:"
msgid "Could not read the image file."
msgstr "Nie udało się odczytać pliku grafiki."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Ups!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Na pewno chcę to usunąć"
@ -960,74 +1017,74 @@ msgstr "Dodaj notatkę"
msgid "commented on your post"
msgstr "komentarze do twojego wpisu"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Ups, twój komentarz nie zawierał treści."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Twój komentarz został opublikowany!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr "Musisz wybrać lub dodać kolekcję"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr "\"%s\" już obecne w kolekcji \"%s\""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr "\"%s\" dodano do kolekcji \"%s\""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr "Sprawdź swoje wpisy i spróbuj ponownie."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Część plików z tego wpisu wygląda na nieistniejące. Trwa usuwanie."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Media zostały usunięte."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Media nie zostały usunięte ponieważ nie potwierdziłeś, że jesteś pewien."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Za chwilę usuniesz media innego użytkownika. Zachowaj ostrożność."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr "Element został usunięty z kolekcji."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr "Ten element nie został usunięty, ponieważ nie zaznaczono, że jesteś pewien."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr "Zamierzasz usunąć element z kolekcji innego użytkownika. Zachowaj ostrożność."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr "Usunięto kolekcję \"%s\""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr "Ta kolekcja nie została usunięta, ponieważ nie zaznaczono, że jesteś pewien."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr "Zamierzasz usunąć kolekcję innego użytkownika. Zachowaj ostrożność."

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/mediagoblin/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -104,7 +104,7 @@ msgid "Description of this work"
msgstr "Descrição desse trabalho"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -120,11 +120,11 @@ msgstr "Etiquetas"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Arquivo"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "O arquivo não pode estar vazio"
@ -163,20 +163,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -190,33 +190,38 @@ msgstr "Uma entrada com esse arquivo já existe para esse usuário"
msgid "You are editing another user's media. Proceed with caution."
msgstr "Você está editando a mídia de outro usuário. Tenha cuidado."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Você está editando um perfil de usuário. Tenha cuidado."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Senha errada"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -233,7 +238,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -303,7 +308,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -328,62 +333,43 @@ msgstr "Eba! Enviado!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Imagem do goblin 404 aparecendo"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oops"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Aparentemente não existe uma página com esse endereço. Desculpe!"
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Logo MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Adicionar mídia"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifique seu email!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Entrar"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +377,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Painel de processamento de mídia"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Explorar"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Olá, bemvindo ao site de MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr " "
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +434,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Mídia mais recente"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Painel de processamento de mídia"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -542,30 +546,43 @@ msgstr "Olá %(username)s,\n\nPara ativar sua conta GNU MediaGoblin, visite este
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salvar mudanças"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Editando %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Cancelar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salvar mudanças"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -591,13 +608,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Original"
@ -624,6 +640,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +714,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -677,14 +743,6 @@ msgstr "Editar"
msgid "Delete"
msgstr "Apagar"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +750,7 @@ msgid "Really delete %(title)s?"
msgstr "Realmente apagar %(title)s ?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -701,7 +759,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -727,12 +785,6 @@ msgstr "Mídia de <a href=\"%(user_url)s\"> %(username)s </a> "
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -759,13 +811,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -773,11 +820,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -848,41 +895,25 @@ msgstr "Editar perfil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Esse usuário não preencheu seu perfil (ainda)."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Ver todas as mídias de %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr "Adicionar mídia"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Aparentemente não há nenhuma mídia aqui ainda..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -902,7 +933,7 @@ msgstr "Atom feed"
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -941,6 +972,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oops"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Eu tenho certeza de que quero pagar isso"
@ -961,74 +1018,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Opa, seu comentáio estava vazio."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Seu comentário foi postado!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Você deletou a mídia."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Você vai apagar uma mídia de outro usuário. Tenha cuidado."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Romanian (http://www.transifex.com/projects/p/mediagoblin/language/ro/)\n"
"MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr "Nu s-a găsit nicio persoană cu acel nume de utilizator sau adresă de
msgid "You can now log in using your new password."
msgstr "Acum te poți autentifica cu noua parolă."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -104,7 +104,7 @@ msgid "Description of this work"
msgstr "Descrierea acestui fișier"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -120,11 +120,11 @@ msgstr "Tag-uri"
msgid "Separate tags by commas."
msgstr "Desparte tag-urile prin virgulă."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Identificator"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Identificatorul nu poate să lipsească"
@ -163,20 +163,20 @@ msgstr "Introdu vechea parolă pentru a demonstra că ești titularul acestui co
msgid "New password"
msgstr "Noua parolă"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Trimite-mi un e-mail când alții comentează fișierele mele"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr "Titlul nu poate să fie gol"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr "Descriere pentru această colecție"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -190,33 +190,38 @@ msgstr "Există deja un entry cu același identificator pentru acest utilizator.
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:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "Ai anexat %s!"
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Editezi profilul unui utilizator. Se recomandă prudență."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Modificările profilului au fost salvate"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Setările pentru acest cont au fost salvate"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Parolă incorectă"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr "Ai deja o colecție numită \"%s\"!"
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr "O colecție cu același slug există deja pentru acest utilizator."
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr "Lucrezi pe colecția unui alt utilizator. Se recomandă prudență."
@ -233,7 +238,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "A fost însă găsit un symlink către vechiul folder; s-a șters.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Scuze, nu recunosc acest tip de fișier :("
@ -273,7 +278,7 @@ msgstr "Descriere"
msgid ""
"This will be visible to users allowing your\n"
" application to authenticate as them."
msgstr ""
msgstr "Aceste informații vor fi vizibile pentru utilizatorii\n care permit aplicației tale să se autentifice în numele lor."
#: mediagoblin/plugins/oauth/forms.py:41
msgid "Type"
@ -303,7 +308,7 @@ msgstr "URI-ul de redirectare pentru aplicații, această rubrică\n
msgid "This field is required for public clients"
msgstr "Această rubrică este obligatorie pentru clienții publici"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr "Clientul {0} a fost înregistrat!"
@ -328,62 +333,43 @@ msgstr "Ura! Trimis!"
msgid "Collection \"%s\" added!"
msgstr "Colecția \"%s\" a fost creată!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Imagine cu elful 404 stresat."
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Hopa!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Nu există nicio pagină la această adresă. Ne pare rău!"
#: mediagoblin/templates/mediagoblin/404.html:28
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 e corectă, poate că pagina pe care o cauți a fost mutată sau ștearsă."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "logo MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "Contul lui <a href=\"%(user_url)s\">%(user_name)s</a>"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "Ieșire"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Trimite fișier"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifică adresa de e-mail!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Adaugă fișier media"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr "+ Creează colecție"
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Vezi profilul tău"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Ieșire"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Autentificare"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Construit cu <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un proiect <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +377,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Publicat sub licența <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. <a href=\"%(source_link)s\">Codul sursă</a> este disponibil."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr "Imagine cu un goblin stresat"
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Acțiuni"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr "Creează colecție nouă"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Modifică setările contului"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panou de procesare media"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Explorează"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Salut, bine ai venit pe acest site MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Acest site folosește <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un software excepțional pentru găzduirea fișierelor media."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Pentru a adăuga fișierele tale și pentru a comenta te poți autentifica cu contul tău MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Încă nu ai unul? E simplu!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +434,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Creează un cont pe acest site</a>\n sau\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instalează MediaGoblin pe serverul tău</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Cele mai recente fișiere"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Panou de procesare media"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -498,7 +502,7 @@ msgid ""
"\n"
"If you think this is an error, just ignore this email and continue being\n"
"a happy goblin!"
msgstr "Bună, %(username)s\n\nPentru a schimba parola ta la GNU MediaGoblin, accesează adresa următoare:\n\n%(verification_url)s\n\nDacă ai primit acest mesaj din greșeală, ignoră-l și fii mai departe un elf fericit!"
msgstr "Bună, %(username)s\n\nPentru a schimba parola ta la GNU MediaGoblin, accesează adresa următoare:\n\n%(verification_url)s\n\nDacă ai primit acest mesaj din greșeală, ignoră-l și fii mai departe un goblin fericit!"
#: mediagoblin/templates/mediagoblin/auth/login.html:39
msgid "Logging in failed!"
@ -542,30 +546,43 @@ msgstr "Bună, %(username)s,\n\npentru activarea contului tău la GNU MediaGobli
msgid "Editing attachments for %(media_title)s"
msgstr "Editare anexe la %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Anexe"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Atașează"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Anulare"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salvează modificările"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Editare %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Anulare"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Salvează modificările"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Se modifică setările contului pentru userul %(username)s"
@ -591,13 +608,12 @@ msgstr "Fișier etichetat cu tag-urile: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Download"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Original"
@ -624,6 +640,56 @@ msgstr "Fișierul original"
msgid "WebM file (Vorbis codec)"
msgstr "Fișier WebM (codec Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Imagine pentru %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr "Rotire"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr "Perspectivă"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr "Din față"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr "De sus"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr "Lateral"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr "WebGL"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr "Descarcă modelul"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr "Formatul fișierului"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr "Înălțimea obiectului"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +714,7 @@ msgstr "Creează o colecție"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Adaugă"
@ -677,14 +743,6 @@ msgstr "Editare"
msgid "Delete"
msgstr "Șterge"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr "<p>\n %(collection_description)s\n </p>"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +750,7 @@ msgid "Really delete %(title)s?"
msgstr "Sigur dorești să ștergi %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Șterge definitiv"
@ -701,7 +759,7 @@ msgstr "Șterge definitiv"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr "Sigur dorești să ștergi %(media_title)s din %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr "Șterge"
@ -727,12 +785,6 @@ msgstr "Fișierele media ale lui <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "<p>❖ Fișierele media ale lui <a href=\"%(user_url)s\">%(username)s</a></p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Imagine pentru %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Adaugă un comentariu"
@ -759,25 +811,20 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Adăugat la</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Anexe"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Atașează"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Adaugă un fișier la colecție"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr "Adaugă %(title)s la colecție"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr "Creează o nouă colecție"
@ -848,42 +895,26 @@ msgstr "Editare profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Acest utilizator nu și-a completat (încă) profilul."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Modifică setările contului"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Vezi toate fișierele media ale lui %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Aici vor apărea fișierele tale media, dar se pare că încă nu ai trimis nimic."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Trimite fișier"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Nu pare să existe niciun fișier media deocamdată..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr "<br />\n <a href=\"%(entry_url)s\">%(note)s</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr "<br /><a href=\"%(remove_url)s\" class=\"remove\">(șterge)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(șterge)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
@ -902,7 +933,7 @@ msgstr "feed Atom"
msgid "Location"
msgstr "Locul"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Vezi pe <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -941,6 +972,32 @@ msgstr "Etichete"
msgid "Could not read the image file."
msgstr "Fișierul cu imaginea nu a putut fi citit."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Hopa!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "S-a produs o eroare"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Operația nu este permisă"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr "Îmi pare rău, Dave, nu te pot lăsa să faci asta!</p><p>Ai încercat să faci o operație nepermisă. Ai încercat iar să ștergi toate conturile utilizatorilor?"
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr "Nu există nicio pagină la această adresă.</p><p>Dacă sunteți sigur că adresa este corectă, poate că pagina pe care o căutați a fost mutată sau ștearsă."
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Sunt sigur că doresc să șterg"
@ -961,74 +1018,74 @@ msgstr "Adaugă o notiță"
msgid "commented on your post"
msgstr "a făcut un comentariu la postarea ta"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Hopa, ai uitat să scrii comentariul."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Comentariul tău a fost trimis!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr "Trebuie să alegi sau să creezi o colecție"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr "\"%s\" este deja în colecția \"%s\""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr "\"%s\" a fost adăugat la colecția \"%s\""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr "Verifică datele și încearcă din nou."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Unele fișiere din acest entry par să lipsească. Ștergem, totuși."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Ai șters acest fișier"
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Fișierul nu a fost șters deoarece nu ai confirmat că ești sigur."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
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ă prudență."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr "Ai șters acest articol din colecție."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr "Articolul nu a fost șters pentru că nu ai confirmat că ești sigur(ă)."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr "Urmează să ștergi un articol din colecția unui alt utilizator. Se recomandă prudență."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr "Ai șters colecția \"%s\""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr "Colecția nu a fost ștearsă pentru că nu ai confirmat că ești sigur(ă)."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr "Urmează să ștergi colecția unui alt utilizator. Se recomandă prudență."

View File

@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 11:41-0500\n"
"PO-Revision-Date: 2012-09-24 18:15+0000\n"
"Last-Translator: aleksejrs <deletesoftware@yandex.ru>\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -92,7 +92,7 @@ msgstr "Не найдено никого с таким именем пользо
msgid "You can now log in using your new password."
msgstr "Теперь вы можете войти, используя ваш новый пароль."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr "Описание этого произведения"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "Метки"
msgid "Separate tags by commas."
msgstr "(через запятую)"
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Отличительная часть адреса"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Отличительная часть адреса необходима"
@ -162,20 +162,20 @@ msgstr "Введите свой старый пароль в качестве д
msgid "New password"
msgstr "Новый пароль"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr "Уведомлять меня по e-mail о комментариях к моим файлам"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
msgstr "Название не может быть пустым"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr "Описание этой коллекции"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,32 +189,38 @@ msgstr "У этого пользователя уже есть файл с та
msgid "You are editing another user's media. Proceed with caution."
msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "Вы добавили сопутствующий файл %s!"
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Вы редактируете профиль пользователя. Будьте осторожны."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Изменения профиля сохранены"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Настройки учётной записи записаны"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Неправильный пароль"
#: mediagoblin/edit/views.py:287
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!title"
msgstr "У вас уже есть коллекция «%s»!title"
msgid "You already have a collection called \"%s\"!"
msgstr "У вас уже есть коллекция с названием «%s»!"
#: mediagoblin/edit/views.py:290
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr "У этого пользователя уже есть коллекция с такой отличительной частью адреса."
#: mediagoblin/edit/views.py:307
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr "Вы редактируете коллекцию другого пользователя. Будьте осторожны."
@ -231,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr "Однако найдена (и удалена) старая символическая ссылка на каталог.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Увы, я не поддерживаю этот тип файлов :("
@ -265,7 +271,7 @@ msgstr ""
#: mediagoblin/plugins/oauth/forms.py:37
msgid "Description"
msgstr ""
msgstr "Описание"
#: mediagoblin/plugins/oauth/forms.py:39
msgid ""
@ -301,7 +307,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -321,72 +327,48 @@ msgstr "Вы должны загрузить файл."
msgid "Woohoo! Submitted!"
msgstr "Ура! Файл загружен!"
#: mediagoblin/submit/views.py:211 mediagoblin/user_pages/views.py:215
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr "У вас уже есть коллекция с названием «%s»!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr "Коллекция «%s» добавлена!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Изображение 404 нервничающего гоблина"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Ой!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Кажется, такой страницы не существует. Уж извините!"
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Символ MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "Учётная запись <a href=\"%(user_url)s\">%(user_name)s</a>"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "завершение сеанса"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Добавить файлы"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Подтвердите ваш адрес электронной почты!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Добавить файл"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr "+ Добавить коллекцию"
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Посмотреть свой профиль"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Завершение сеанса"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Войти"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, проекте <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -394,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Он опубликован на условиях <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL</a>. Доступны <a href=\"%(source_link)s\">исходные тексты</a>."
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr "Изображение нервничающего гоблина"
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Действия"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr "Создать новую коллекцию"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Изменить настройки учётной записи"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Панель обработки файлов"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Смотреть"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Привет! Добро пожаловать на наш MediaGoblinовый сайт!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Этот сайт работает на <a href=\"http://mediagoblin.org\">MediaGoblin</a>, необыкновенно замечательном ПО для хостинга мультимедийных файлов."
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Для добавления собственных файлов, комментирования и т. п. вы можете представиться с помощью вашей MediaGoblinовой учётной записи."
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "У вас её ещё нет? Не проблема!"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -426,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Создайте учётную запись на этом сайте</a>\n или\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">установите MediaGoblin на собственный сервер</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Самые новые файлы"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Панель обработки файлов"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -545,30 +545,43 @@ msgstr "Привет, %(username)s!\n\nЧтобы активировать св
msgid "Editing attachments for %(media_title)s"
msgstr "Добавление сопутствующего файла для %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Сопутствующие файлы"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Добавить сопутствующий файл"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Отмена"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Сохранить изменения"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Редактирование %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Отмена"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Сохранить изменения"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Настройка учётной записи %(username)s"
@ -594,13 +607,12 @@ msgstr "Файлы с меткой: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Скачать"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Оригинал"
@ -627,6 +639,56 @@ msgstr "Исходный файл"
msgid "WebM file (Vorbis codec)"
msgstr "WebMфайл (кодек — Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Изображение «%(media_title)s»"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -651,7 +713,7 @@ msgstr "Добавление коллекции"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Добавить"
@ -680,14 +742,6 @@ msgstr "Изменить"
msgid "Delete"
msgstr "Удалить"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -695,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr "Удалить %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Удалить безвозвратно"
@ -704,7 +758,7 @@ msgstr "Удалить безвозвратно"
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr "В самом деле исключить %(media_title)s из %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr "Исключить"
@ -730,12 +784,6 @@ msgstr "Файлы пользователя <a href=\"%(user_url)s\">%(username)
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Просмотр файлов пользователя <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Изображение «%(media_title)s»"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Добавить комментарий"
@ -762,25 +810,20 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Добавлено</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Сопутствующие файлы"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Добавить сопутствующий файл"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Добавить файл к коллекции"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr "Добавить %(title)s в коллекцию"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr "Добавление новой коллекции"
@ -851,42 +894,26 @@ msgstr "Редактировать профиль"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Этот пользователь не заполнил свой профайл (пока)."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Изменить настройки учётной записи"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Смотреть все файлы %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr "Добавить файлы"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Пока что тут файлов нет…"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(исключить)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
@ -905,7 +932,7 @@ msgstr "лента в формате Atom"
msgid "Location"
msgstr "На карте"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Посмотреть на <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -944,6 +971,32 @@ msgstr "Метки"
msgid "Could not read the image file."
msgstr "Не удалось прочитать файл с изображением."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Ой!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "Произошла ошибка"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Операция не позволяется"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Я уверен, что хочу удалить это"
@ -964,74 +1017,74 @@ msgstr "Примечание"
msgid "commented on your post"
msgstr "оставил комментарий к вашему файлу"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Ой, ваш комментарий был пуст."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Ваш комментарий размещён!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr "Необходимо выбрать или добавить коллекцию"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr "«%s» — уже в коллекции «%s»"
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr "«%s» добавлено в коллекцию «%s»"
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr "Некоторые файлы от этой записи не обнаружены. Всё равно удаляем."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "Вы удалили файл."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Файл не удалён, так как вы не подтвердили свою уверенность галочкой."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Вы на пороге удаления файла другого пользователя. Будьте осторожны."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr "Вы исключили файл из коллекции."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr "Файл не исключён из коллекции, так как вы не подтвердили своё намерение отметкой."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr "Вы на пороге исключения файла из коллекции другого пользователя. Будьте осторожны."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr "Вы удалили коллекцию «%s»"
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr "Коллекция не удалена, так как вы не подтвердили своё намерение отметкой."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr "Вы на пороге удаления коллекции другого пользователя. Будьте осторожны."

File diff suppressed because it is too large Load Diff

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -92,7 +92,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr "Oznake"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Oznaka"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Oznaka ne sme biti prazna"
@ -162,20 +162,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,33 +189,38 @@ msgstr "Vnos s to oznako za tega uporabnika že obstaja."
msgid "You are editing another user's media. Proceed with caution."
msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Urejate uporabniški profil. Nadaljujte pazljivo."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -232,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -302,7 +307,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -327,62 +332,43 @@ msgstr "Juhej! Poslano."
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Slika napake 404 s paničnim škratom"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Opa!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Oprostite. Videti je, da na tem naslovu ni nobene strani."
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Če ste v točnost naslova prepričani, je bila iskana stran morda premaknjena ali pa izbrisana."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Logotip MediaGoblin"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Dodaj vsebino"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Prijava"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Podokno obdelovanja vsebine"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Podokno obdelovanja vsebine"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -541,30 +545,43 @@ msgstr "Pozdravljeni, %(username)s\n\nZa aktivacijo svojega računa GNU MediaGob
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Prekliči"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Shrani spremembe"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Urejanje %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Prekliči"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Shrani spremembe"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -590,13 +607,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -623,6 +639,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -647,7 +713,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -676,14 +742,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -700,7 +758,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -726,12 +784,6 @@ msgstr "Vsebina uporabnika <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -758,13 +810,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -772,11 +819,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -847,41 +894,25 @@ msgstr "Uredi profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Ta uporabnik še ni izpolnil svojega profila."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Prikaži vso vsebino uporabnika %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Tu bo prikazana vaša vsebina, a trenutno še niste dodali nič."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Dodaj vsebino"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Videti je, da tu še ni nobene vsebine ..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -901,7 +932,7 @@ msgstr "Ikona Atom"
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -940,6 +971,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Opa!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -960,74 +1017,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PROJECT project.
#
# Translators:
# Besnik Bleta <besnik@programeshqip.org>, 2012.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Albanian (http://www.transifex.com/projects/p/mediagoblin/language/sq/)\n"
"MIME-Version: 1.0\n"
@ -92,7 +93,7 @@ msgstr "Nuk u gjet dot dikush me atë emër përdoruesi ose email."
msgid "You can now log in using your new password."
msgstr "Tani mun të hyni duke përdorur fjalëkalimin tuaj të ri."
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +104,7 @@ msgid "Description of this work"
msgstr "Përshkrim i kësaj pune"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +120,11 @@ msgstr "Etiketa"
msgid "Separate tags by commas."
msgstr "Ndajini etiketat me presje."
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Identifikues"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Identifikuesi s'mund të jetë i zbrazët"
@ -162,24 +163,24 @@ msgstr "Jepni fjalëkalimin tuaj të vjetër që të provohet se këtë llogari
msgid "New password"
msgstr "Fjalëkalimi i ri"
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
msgstr "Dërgomë email kur të tjerët komentojnë te media ime"
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
msgstr "Titulli s'mund të jetë i zbrazët"
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
msgstr "Përshkrim i këtij koleksioni"
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
msgstr ""
msgstr "Pjesa titull e adresës së këtij koleksioni. Zakonisht nuk keni pse e ndryshoni këtë."
#: mediagoblin/edit/views.py:65
msgid "An entry with that slug already exists for this user."
@ -187,96 +188,101 @@ msgstr "Ka tashmë një zë me atë identifikues për këtë përdorues."
#: mediagoblin/edit/views.py:86
msgid "You are editing another user's media. Proceed with caution."
msgstr "Po përpunoni media të një tjetër përdoruesi. Bëni kujdes."
msgstr "Po përpunoni media të një tjetër përdoruesi. Hapni sytë."
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr "Shtuat bashkangjitjen %s!"
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Po përpunoni profilin e një përdoruesi. Bëni kujdes."
msgstr "Po përpunoni profilin e një përdoruesi. Hapni sytë."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr "Ndryshimet e profilit u ruajtën"
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr "Rregullimet e llogarisë u ruajtën"
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Fjalëkalim i gabuar"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
msgstr "Keni tashmë një koleksion të quajtur \"%s\"!"
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
msgstr "Ka tashmë një koleksion me atë identifikues për këtë përdorues."
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
msgstr "Po përpunoni koleksionin e një tjetër përdoruesi. Hapni sytë."
#: mediagoblin/gmg_commands/theme.py:58
msgid "Cannot link theme... no theme set\n"
msgstr ""
msgstr "Nuk krijohet dot lidhje për te tema... nuk ka temë të caktuar\n"
#: mediagoblin/gmg_commands/theme.py:71
msgid "No asset directory for this theme\n"
msgstr ""
msgstr "Nuk ka drejtori asetesh për këtë temë\n"
#: mediagoblin/gmg_commands/theme.py:74
msgid "However, old link directory symlink found; removed.\n"
msgstr ""
msgstr "Sidoqoftë, u gjet simlidhje e vjetër drejtorie lidhjesh; u hoq.\n"
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr "Na ndjeni, nuk e mbullojmë këtë lloj kartele :("
#: mediagoblin/media_types/video/processing.py:35
msgid "Video transcoding failed"
msgstr ""
msgstr "Ndërkodimi i videos dështoi"
#: mediagoblin/plugins/oauth/forms.py:26
msgid "Client ID"
msgstr ""
msgstr "ID klienti"
#: mediagoblin/plugins/oauth/forms.py:28
msgid "Next URL"
msgstr ""
msgstr "URL-ja Pasuese"
#: mediagoblin/plugins/oauth/forms.py:30
msgid "Allow"
msgstr ""
msgstr "Lejoje"
#: mediagoblin/plugins/oauth/forms.py:31
msgid "Deny"
msgstr ""
msgstr "Mohoje"
#: mediagoblin/plugins/oauth/forms.py:35
msgid "Name"
msgstr ""
msgstr "Emër"
#: mediagoblin/plugins/oauth/forms.py:36
msgid "The name of the OAuth client"
msgstr ""
msgstr "Emri i klientit OAuth"
#: mediagoblin/plugins/oauth/forms.py:37
msgid "Description"
msgstr ""
msgstr "Përshkrim"
#: mediagoblin/plugins/oauth/forms.py:39
msgid ""
"This will be visible to users allowing your\n"
" application to authenticate as them."
msgstr ""
msgstr "Kjo do të jetë e dukshme për përdoruesit,\n duke i lejuar kështu zbatimit tuaj\n të kryejë mirëfilltësim si të qe njëri prej tyre."
#: mediagoblin/plugins/oauth/forms.py:41
msgid "Type"
msgstr ""
msgstr "Lloj"
#: mediagoblin/plugins/oauth/forms.py:46
msgid ""
@ -286,25 +292,25 @@ msgid ""
" <strong>Public</strong> - The client can't make confidential\n"
" requests to the GNU MediaGoblin instance (e.g. client-side\n"
" JavaScript client)."
msgstr ""
msgstr "<strong>Konfidenciale</strong> - Kklienti mund\n të bëjë kërkesa te instanca GNU MediaGoblin që nuk mund\n të përgjohen nga agjenti i përdoruesit (p.sh. klient te shërbyesi).<br />\n <strong>Publike</strong> - Klienti nuk mund të bëjë kërkesa\n konfidenciale te instanca GNU MediaGoblin (p.sh. klient\n JavaScript i vetë klientit)."
#: mediagoblin/plugins/oauth/forms.py:53
msgid "Redirect URI"
msgstr ""
msgstr "URI Ridrejtimi"
#: mediagoblin/plugins/oauth/forms.py:55
msgid ""
"The redirect URI for the applications, this field\n"
" is <strong>required</strong> for public clients."
msgstr ""
msgstr "URI ridrejtimi për zbatimin, kjo fushë\n është <strong>e domosdoshme</strong> për klientë publikë."
#: mediagoblin/plugins/oauth/forms.py:67
msgid "This field is required for public clients"
msgstr ""
msgstr "Kjo fushë është e domosdoshme për klientë publikë"
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
msgstr "Klienti {0} u regjistrua!"
#: mediagoblin/processing/__init__.py:138
msgid "Invalid file given for media type."
@ -325,64 +331,45 @@ msgstr "Yhaaaaaa! U parashtrua!"
#: mediagoblin/submit/views.py:215
#, python-format
msgid "Collection \"%s\" added!"
msgstr ""
msgstr "U shtua koleksioni \"%s\"!"
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Figurë 404 e djallushit në siklet"
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Oooh!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Nuk duket të ketë ndonjë faqe te kjo adresë. Na ndjeni!"
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Nëse jeni i sigurt se adresa është e saktë, ndoshta faqja që po kërkoni është fshirë ose kaluar gjetkë."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "Logoja e MediaGoblin-it"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr "Llogaria e <a href=\"%(user_url)s\">%(user_name)s</a>"
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr "dilni"
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Shtoni media"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifikoni email-in tuaj!"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr "+ Shtoni media"
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr "Shihni profilin tuaj"
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr "Dilni"
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Hyni"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr "Bazuar në <a href=\"http://mediagoblin.org\">MediaGoblin</a>, një projekt <a href=\"http://gnu.org/\">GNU</a>."
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,42 +377,24 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr "Hedhur në qarkullim sipas <a href=\"http://www.fsf.org/licensing/licenses/agpl-3.0.html\">AGPL-së</a>. <a href=\"%(source_link)s\">Kodi burim</a> është i passhëm."
#: mediagoblin/templates/mediagoblin/root.html:24
msgid "Explore"
msgstr "Eksploroni"
#: mediagoblin/templates/mediagoblin/root.html:26
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Tungjatjeta juaj, mirë se vini te ky site MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:28
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Ky site përdor <a href=\"http://mediagoblin.org\">MediaGoblin</a>, një program jashtëzakonisht i shkëlqyer për strehim mediash."
#: mediagoblin/templates/mediagoblin/root.html:29
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr "Veprime"
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Don't have one yet? It's easy!"
msgstr "Nuk keni ende një të tillë? Është e lehtë!"
msgid "Create new collection"
msgstr "Krijoni koleksion të ri"
#: mediagoblin/templates/mediagoblin/root.html:32
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Krijoni një llogarin te ky site</a>\n ose\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instaloni dhe rregulloni MediaGoblin-in te shërbyesi juaj</a>"
#: mediagoblin/templates/mediagoblin/root.html:40
msgid "Most recent media"
msgstr "Mediat më të reja"
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr "Ndryshoni rregullime llogarie"
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
@ -433,10 +402,46 @@ msgstr "Mediat më të reja"
msgid "Media processing panel"
msgstr "Paneli i Përpunimit të Medias"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Eksploroni"
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Tungjatjeta juaj, mirë se vini te ky site MediaGoblin!"
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr "Ky site përdor <a href=\"http://mediagoblin.org\">MediaGoblin</a>, një program jashtëzakonisht i shkëlqyer për strehim mediash."
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr "Për të shtuar media tuajën, për të bërë komente, dhe të tjera, mund të hyni përmes llogarisë suaj MediaGoblin."
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Nuk keni ende një të tillë? Është e lehtë!"
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
" or\n"
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr "<a class=\"button_action_highlight\" href=\"%(register_url)s\">Krijoni një llogarin te ky site</a>\n ose\n <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Instaloni dhe rregulloni MediaGoblin-in te shërbyesi juaj</a>"
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Mediat më të reja"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
msgstr ""
msgstr "Këtu mund të ndiqni gjendjen e medias që po përpunohet në këtë instancë."
#: mediagoblin/templates/mediagoblin/admin/panel.html:32
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:32
@ -456,16 +461,16 @@ msgstr "Nuk arritën të kryheshin këto ngarkime:"
#: mediagoblin/templates/mediagoblin/admin/panel.html:90
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:86
msgid "No failed entries!"
msgstr ""
msgstr "Pa zëra të dështuar!"
#: mediagoblin/templates/mediagoblin/admin/panel.html:92
msgid "Last 10 successful uploads"
msgstr ""
msgstr "10 Ngarkimet e Fundit të Suksesshme"
#: mediagoblin/templates/mediagoblin/admin/panel.html:112
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:107
msgid "No processed entries, yet!"
msgstr ""
msgstr "Ende pa zëra të përpunuar!"
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:28
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:36
@ -539,7 +544,36 @@ msgstr "Njatjeta %(username)s,\n\nqë të aktivizoni llogarinë tuaj te GNU Medi
#: mediagoblin/templates/mediagoblin/edit/attachments.html:35
#, python-format
msgid "Editing attachments for %(media_title)s"
msgstr ""
msgstr "Po përpunohen bashkangjitjet për %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr "Bashkangjitje"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr "Shtoni bashkangjitje"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Anuloje"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Ruaji ndryshimet"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
@ -547,24 +581,8 @@ msgstr ""
msgid "Editing %(media_title)s"
msgstr "Po përpunohet %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Anuloje"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Ruaji ndryshimet"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr "Po ndryshohen rregullimet e llogarisë %(username)s"
@ -572,7 +590,7 @@ msgstr "Po ndryshohen rregullimet e llogarisë %(username)s"
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:29
#, python-format
msgid "Editing %(collection_title)s"
msgstr ""
msgstr "Po përpunohet %(collection_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:23
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
@ -590,13 +608,12 @@ msgstr "Media e etiketuar me:: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr "Shkarkojeni"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Origjinal"
@ -617,12 +634,62 @@ msgstr "Një shfletues web modern që mund të luajë \n\taudion mund ta merrni
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:60
#: mediagoblin/templates/mediagoblin/media_displays/video.html:56
msgid "Original file"
msgstr ""
msgstr "Kartela origjinale"
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:63
msgid "WebM file (Vorbis codec)"
msgstr "Kartelë WebM (kodek Vorbis)"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Figurë për %(media_title)s"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr "Perspektivë"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr "Ball"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr "Krye"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr "Anë"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr "WebGL"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr "Shkarkojeni modelin"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr "Format Kartele"
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr "Lartësi Objekti"
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -639,15 +706,15 @@ msgstr "Një shfletues web modern që \n\t mund ta luajë këtë video mund t
#: mediagoblin/templates/mediagoblin/media_displays/video.html:59
msgid "WebM file (640p; VP8/Vorbis)"
msgstr ""
msgstr "Kartelë WebM (640p; VP8/Vorbis)"
#: mediagoblin/templates/mediagoblin/submit/collection.html:26
msgid "Add a collection"
msgstr ""
msgstr "Shtoni një koleksion"
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr "Shtoni"
@ -659,12 +726,12 @@ msgstr "Shtoni media tuajën"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:30
#, python-format
msgid "%(collection_title)s (%(username)s's collection)"
msgstr ""
msgstr "%(collection_title)s (koleksione nga %(username)s)"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:39
#, python-format
msgid "%(collection_title)s by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
msgstr "%(collection_title)s nga <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media.html:87
@ -676,14 +743,6 @@ msgstr "Përpunoni"
msgid "Delete"
msgstr "Fshije"
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,25 +750,25 @@ msgid "Really delete %(title)s?"
msgstr "Të fshihet vërtet %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr "Fshije përgjithmonë"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:31
#, python-format
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
msgstr "Të hiqet vërtet %(media_title)s nga %(collection_title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
msgstr "Hiqe"
#: mediagoblin/templates/mediagoblin/user_pages/comment_email.txt:19
#, python-format
msgid ""
"Hi %(username)s,\n"
"%(comment_author)s commented on your post (%(comment_url)s) at %(instance_name)s\n"
msgstr ""
msgstr "Tungjatjeta %(username)s,\n%(comment_author)s ka komentuar te postimi juaj (%(comment_url)s) në %(instance_name)s\n"
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
#, python-format
@ -726,12 +785,6 @@ msgstr "Media nga <a href=\"%(user_url)s\">%(username)s</a>"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr "❖ Po shfletoni media nga <a href=\"%(user_url)s\">%(username)s</a>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr "Figurë për %(media_title)s"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr "Shtoni një koment"
@ -758,27 +811,22 @@ msgid ""
" <p>%(date)s</p>"
msgstr "<h3>Shtuar më</h3>\n <p>%(date)s</p>"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr "Shtoni koleksion media"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
#, python-format
msgid "Add %(title)s to collection"
msgstr ""
msgstr "Shtoni %(title)s te koleksioni juaj"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
msgstr "+"
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
msgstr "Shtoni një koleksion të ri"
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:29
msgid ""
@ -787,7 +835,7 @@ msgstr "Gjendjen e medias që po përpunohet për galerinë tuaj mund ta ndiqni
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:89
msgid "Your last 10 successful uploads"
msgstr ""
msgstr "10 ngarkimet tuaja më të suksesshme"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
@ -847,47 +895,31 @@ msgstr "Përpunoni profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Ky përdorues nuk e ka plotësuar (ende) profilin e vet."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr "Ndryshoni rregullime llogarie"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Shihni krejt mediat nga %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Media juaj do të shfaqet këtu, por nuk duket të keni shtuar gjë ende."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Shtoni media"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Nuk duket ende të ketë ndonjë media këtu..."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr "(hiqe)"
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
#, python-format
msgid "In collections (%(collected)s)"
msgstr ""
msgstr "Te koleksionet (%(collected)s)"
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
msgid "feed icon"
@ -901,7 +933,7 @@ msgstr "Prurje Atom"
msgid "Location"
msgstr "Vend"
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr "Shiheni te <a href=\"%(osm_url)s\">OpenStreetMap</a>"
@ -940,94 +972,120 @@ msgstr "Etiketuar me"
msgid "Could not read the image file."
msgstr "Nuk lexoi dot kartelën e figurës."
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Oooh!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr "Ndodhi një gabim"
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr "Veprim i palejuar"
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr "Më ndjeni or trim, nuk ju lë dot ta bëni këtë!</p><p>Provuat të kryeni një funksion që nuk lejohet. Keni provuar prapë të fshini krejt llogaritë e përdoruesve?"
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr "Nuk duket se ka ndonjë faqe në këtë adresë. Na ndjeni!</p><p>Nëse jeni i sigurt se kjo adresë është e saktë, ndoshta faqja që po kërkoni është lëvizur ose fshirë."
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Jam i sigurt që dua të fshihet kjo"
#: mediagoblin/user_pages/forms.py:32
msgid "I am sure I want to remove this item from the collection"
msgstr ""
msgstr "Jam i sigurt se dua që të hiqet ky objekt prek koleksioni"
#: mediagoblin/user_pages/forms.py:35
msgid "-- Select --"
msgstr ""
msgstr "-- Përzgjidhni --"
#: mediagoblin/user_pages/forms.py:37
msgid "Include a note"
msgstr ""
msgstr "Përfshini një shënim"
#: mediagoblin/user_pages/lib.py:56
msgid "commented on your post"
msgstr ""
msgstr "komentoi te postimi juaj"
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr "Hmmm, komenti juaj qe i zbrazët."
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr "Komenti juaj u postua!"
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
msgstr "Duhet të përzgjidhni ose shtoni një koleksion"
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
msgstr "\"%s\" gjendet tashmë te koleksioni \"%s\""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
msgstr "\"%s\" u shtua te koleksioni \"%s\""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
msgstr "Ju lutemi, kontrolloni zërat tuaj dhe riprovoni."
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
msgstr "Duket se mungojnë disa nga kartelat në këtë zë. Po fshihet, sido qoftë."
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr "E fshitë median."
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr "Media nuk u fshi ngaqë nuk i vutë shenjë pohimit se jeni i sigurt."
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr "Ju ndan një hap nga fshirja e medias të një tjetër përdoruesi. Bëni kujdes."
msgstr "Ju ndan një hap nga fshirja e medias të një tjetër përdoruesi. Hapni sytë."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
msgstr "E fshitë objektin prej koleksionit."
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
msgstr "Objekti nuk u fshi ngaqë, nuk pohuat se jeni të sigurt për këtë."
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
msgstr "Ju ndan një hap nga fshirja e një objekti prej koleksionit të një përdoruesi tjetër. Hapni sytë."
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
msgstr "E fshitë koleksionin \"%s\""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
msgstr "Koleksioni nuk u fshi ngaqë, nuk pohuat se jeni të sigurt për këtë."
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""
msgstr "Ju ndan një hap nga fshirja e koleksionit të një përdoruesi tjetër. Hapni sytë."

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Serbian (http://www.transifex.com/projects/p/mediagoblin/language/sr/)\n"
"MIME-Version: 1.0\n"
@ -91,7 +91,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -102,7 +102,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -118,11 +118,11 @@ msgstr ""
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -161,20 +161,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -188,33 +188,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -231,7 +236,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -301,7 +306,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -326,62 +331,43 @@ msgstr ""
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -389,31 +375,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -421,17 +432,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -540,30 +544,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -589,13 +606,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -622,6 +638,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -646,7 +712,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -675,14 +741,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -690,7 +748,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -699,7 +757,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -725,12 +783,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -757,13 +809,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -771,11 +818,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -846,41 +893,25 @@ msgstr ""
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -900,7 +931,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -939,6 +970,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -959,74 +1016,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Swedish (http://www.transifex.com/projects/p/mediagoblin/language/sv/)\n"
"MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -104,7 +104,7 @@ msgid "Description of this work"
msgstr "Beskrivning av verket"
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -120,11 +120,11 @@ msgstr "Taggar"
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr "Sökvägsnamn"
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr "Sökvägsnamnet kan inte vara tomt"
@ -163,20 +163,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -190,33 +190,38 @@ msgstr "Ett inlägg med det sökvägsnamnet existerar redan."
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:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr "Var försiktig, du redigerar en annan användares profil."
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr "Fel lösenord"
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -233,7 +238,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -303,7 +308,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -328,62 +333,43 @@ msgstr "Tjohoo! Upladdat!"
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr "Bild av stressat 404-troll."
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr "Ojoj!"
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr "Ledsen, det verkar inte vara någonting här."
#: mediagoblin/templates/mediagoblin/404.html:28
msgid ""
"If you're sure the address is correct, maybe the page you're looking for has"
" been moved or deleted."
msgstr "Om du är säker på att adressen stämmer så kanske sidan du letar efter har flyttats eller tagits bort."
#: mediagoblin/templates/mediagoblin/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr "MediaGoblin-logotyp"
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr "Lägg till media"
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr "Verifiera din e-postadress"
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr "Logga in"
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -391,31 +377,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Mediabehandlingspanel"
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr "Utforska"
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr "Hej, välkommen till den här MediaGoblin-sidan!"
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr "Har du inte ett redan?"
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -423,17 +434,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr "Senast medier"
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr "Mediabehandlingspanel"
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -542,30 +546,43 @@ msgstr "Hej %(username)s,\n\nöppna den följande webbadressen i din webbläsare
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "Avbryt"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Spara ändringar"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr "Redigerar %(media_title)s"
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "Avbryt"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "Spara ändringar"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -591,13 +608,12 @@ msgstr "Media taggat med: %(tag_name)s"
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr "Original"
@ -624,6 +640,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -648,7 +714,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -677,14 +743,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -692,7 +750,7 @@ msgid "Really delete %(title)s?"
msgstr "Vill du verkligen radera %(title)s?"
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -701,7 +759,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -727,12 +785,6 @@ msgstr "<a href=\"%(user_url)s\">%(username)s</a>s media"
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -759,13 +811,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -773,11 +820,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -848,41 +895,25 @@ msgstr "Redigera profil"
msgid "This user hasn't filled in their profile (yet)."
msgstr "Den här användaren har inte fyllt i sin profilsida ännu."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr "Se all media från %(username)s"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
msgid ""
"This is where your media will appear, but you don't seem to have added "
"anything yet."
msgstr "Här kommer din media att dyka upp, du verkar inte ha lagt till någonting ännu."
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
msgid "Add media"
msgstr "Lägg till media"
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr "Det verkar inte finnas någon media här ännu."
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -902,7 +933,7 @@ msgstr "Atom-feed"
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -941,6 +972,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr "Ojoj!"
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr "Jag är säker på att jag vill radera detta"
@ -961,74 +1018,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
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."
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
@ -92,7 +92,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -103,7 +103,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -119,11 +119,11 @@ msgstr ""
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -162,20 +162,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -189,33 +189,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -232,7 +237,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -302,7 +307,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -327,62 +332,43 @@ msgstr ""
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -390,31 +376,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -422,17 +433,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -541,30 +545,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr "రద్దుచేయి"
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "మార్పులను భద్రపరచు"
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr "రద్దుచేయి"
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr "మార్పులను భద్రపరచు"
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -590,13 +607,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -623,6 +639,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -647,7 +713,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -676,14 +742,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -691,7 +749,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -700,7 +758,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -726,12 +784,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -758,13 +810,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -772,11 +819,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -847,41 +894,25 @@ msgstr ""
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -901,7 +932,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -940,6 +971,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -960,74 +1017,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU MediaGoblin\n"
"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n"
"POT-Creation-Date: 2012-09-24 14:01-0500\n"
"PO-Revision-Date: 2012-09-24 18:57+0000\n"
"POT-Creation-Date: 2012-12-20 09:18-0600\n"
"PO-Revision-Date: 2012-12-20 15:14+0000\n"
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
"Language-Team: Chinese (Taiwan) (Big5) (http://www.transifex.com/projects/p/mediagoblin/language/zh_TW.Big5/)\n"
"MIME-Version: 1.0\n"
@ -91,7 +91,7 @@ msgstr ""
msgid "You can now log in using your new password."
msgstr ""
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:83
#: mediagoblin/edit/forms.py:25 mediagoblin/edit/forms.py:82
#: mediagoblin/submit/forms.py:28 mediagoblin/submit/forms.py:47
#: mediagoblin/user_pages/forms.py:40
msgid "Title"
@ -102,7 +102,7 @@ msgid "Description of this work"
msgstr ""
#: mediagoblin/edit/forms.py:29 mediagoblin/edit/forms.py:52
#: mediagoblin/edit/forms.py:87 mediagoblin/submit/forms.py:32
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:32
#: mediagoblin/submit/forms.py:51 mediagoblin/user_pages/forms.py:44
msgid ""
"You can use\n"
@ -118,11 +118,11 @@ msgstr ""
msgid "Separate tags by commas."
msgstr ""
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:91
#: mediagoblin/edit/forms.py:38 mediagoblin/edit/forms.py:90
msgid "Slug"
msgstr ""
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:92
#: mediagoblin/edit/forms.py:39 mediagoblin/edit/forms.py:91
msgid "The slug can't be empty"
msgstr ""
@ -161,20 +161,20 @@ msgstr ""
msgid "New password"
msgstr ""
#: mediagoblin/edit/forms.py:72
#: mediagoblin/edit/forms.py:71
msgid "Email me when others comment on my media"
msgstr ""
#: mediagoblin/edit/forms.py:84
#: mediagoblin/edit/forms.py:83
msgid "The title can't be empty"
msgstr ""
#: mediagoblin/edit/forms.py:86 mediagoblin/submit/forms.py:50
#: mediagoblin/edit/forms.py:85 mediagoblin/submit/forms.py:50
#: mediagoblin/user_pages/forms.py:43
msgid "Description of this collection"
msgstr ""
#: mediagoblin/edit/forms.py:93
#: mediagoblin/edit/forms.py:92
msgid ""
"The title part of this collection's address. You usually don't need to "
"change this."
@ -188,33 +188,38 @@ msgstr ""
msgid "You are editing another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:182
#: mediagoblin/edit/views.py:156
#, python-format
msgid "You added the attachment %s!"
msgstr ""
#: mediagoblin/edit/views.py:181
msgid "You are editing a user's profile. Proceed with caution."
msgstr ""
#: mediagoblin/edit/views.py:198
#: mediagoblin/edit/views.py:197
msgid "Profile changes saved"
msgstr ""
#: mediagoblin/edit/views.py:227 mediagoblin/edit/views.py:247
#: mediagoblin/edit/views.py:226 mediagoblin/edit/views.py:246
msgid "Account settings saved"
msgstr ""
#: mediagoblin/edit/views.py:252
#: mediagoblin/edit/views.py:251
msgid "Wrong password"
msgstr ""
#: mediagoblin/edit/views.py:288 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:215
#: mediagoblin/edit/views.py:287 mediagoblin/submit/views.py:211
#: mediagoblin/user_pages/views.py:210
#, python-format
msgid "You already have a collection called \"%s\"!"
msgstr ""
#: mediagoblin/edit/views.py:292
#: mediagoblin/edit/views.py:291
msgid "A collection with that slug already exists for this user."
msgstr ""
#: mediagoblin/edit/views.py:309
#: mediagoblin/edit/views.py:308
msgid "You are editing another user's collection. Proceed with caution."
msgstr ""
@ -231,7 +236,7 @@ msgid "However, old link directory symlink found; removed.\n"
msgstr ""
#: mediagoblin/media_types/__init__.py:60
#: mediagoblin/media_types/__init__.py:120
#: mediagoblin/media_types/__init__.py:101
msgid "Sorry, I don't support that file type :("
msgstr ""
@ -301,7 +306,7 @@ msgstr ""
msgid "This field is required for public clients"
msgstr ""
#: mediagoblin/plugins/oauth/views.py:59
#: mediagoblin/plugins/oauth/views.py:60
msgid "The client {0} has been registered!"
msgstr ""
@ -326,62 +331,43 @@ msgstr ""
msgid "Collection \"%s\" added!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:24
msgid "Image of 404 goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:25
msgid "Oops!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:26
msgid "There doesn't seem to be a page at this address. Sorry!"
msgstr ""
#: mediagoblin/templates/mediagoblin/404.html:28
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/base.html:50
#: mediagoblin/templates/mediagoblin/base.html:48
msgid "MediaGoblin logo"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:54
#, python-format
msgid "<a href=\"%(user_url)s\">%(user_name)s</a>'s account"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:60
msgid "log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:62
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:68
msgid "Verify your email!"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:66
msgid "+ Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:67
msgid "+ Add collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:69
msgid "View your profile"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:70
msgid "Log out"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:75
#: mediagoblin/templates/mediagoblin/base.html:73
#: mediagoblin/templates/mediagoblin/auth/login.html:28
#: mediagoblin/templates/mediagoblin/auth/login.html:36
#: mediagoblin/templates/mediagoblin/auth/login.html:54
msgid "Log in"
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:89
#: mediagoblin/templates/mediagoblin/base.html:87
msgid ""
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
"href=\"http://gnu.org/\">GNU</a> project."
msgstr ""
#: mediagoblin/templates/mediagoblin/base.html:92
#: mediagoblin/templates/mediagoblin/base.html:90
#, python-format
msgid ""
"Released under the <a "
@ -389,31 +375,56 @@ msgid ""
"href=\"%(source_link)s\">Source code</a> available."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:24
#: mediagoblin/templates/mediagoblin/error.html:24
msgid "Image of goblin stressing out"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:25
msgid "Actions"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
msgid "Create new collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:34
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:38
#: mediagoblin/templates/mediagoblin/root.html:44
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:51
msgid "Explore"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:26
#: mediagoblin/templates/mediagoblin/root.html:53
msgid "Hi there, welcome to this MediaGoblin site!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:28
#: mediagoblin/templates/mediagoblin/root.html:55
msgid ""
"This site is running <a href=\"http://mediagoblin.org\">MediaGoblin</a>, an "
"extraordinarily great piece of media hosting software."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:29
#: mediagoblin/templates/mediagoblin/root.html:56
msgid ""
"To add your own media, place comments, and more, you can log in with your "
"MediaGoblin account."
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:31
#: mediagoblin/templates/mediagoblin/root.html:58
msgid "Don't have one yet? It's easy!"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:32
#: mediagoblin/templates/mediagoblin/root.html:59
#, python-format
msgid ""
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
@ -421,17 +432,10 @@ msgid ""
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/root.html:40
#: mediagoblin/templates/mediagoblin/root.html:67
msgid "Most recent media"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:21
#: mediagoblin/templates/mediagoblin/admin/panel.html:26
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:21
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:26
msgid "Media processing panel"
msgstr ""
#: mediagoblin/templates/mediagoblin/admin/panel.html:29
msgid ""
"Here you can track the state of media being processed on this instance."
@ -540,30 +544,43 @@ msgstr ""
msgid "Editing attachments for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:43
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:56
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:60
#: mediagoblin/templates/mediagoblin/edit/edit.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:81
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:48
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/attachments.html:62
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:51
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:23
#: mediagoblin/templates/mediagoblin/edit/edit.html:35
#, python-format
msgid "Editing %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:42
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:32
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:46
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Cancel"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit.html:43
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:47
#: mediagoblin/templates/mediagoblin/edit/edit_collection.html:33
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:41
msgid "Save changes"
msgstr ""
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:28
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:41
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
#, python-format
msgid "Changing %(username)s's account settings"
msgstr ""
@ -589,13 +606,12 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
#: mediagoblin/templates/mediagoblin/media_displays/audio.html:56
#: mediagoblin/templates/mediagoblin/media_displays/image.html:23
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:136
#: mediagoblin/templates/mediagoblin/media_displays/video.html:52
msgid "Download"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:38
#: mediagoblin/templates/mediagoblin/media_displays/image.html:27
msgid "Original"
msgstr ""
@ -622,6 +638,56 @@ msgstr ""
msgid "WebM file (Vorbis codec)"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:87
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:93
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:99
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:105
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:112
msgid "Toggle Rotate"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:113
msgid "Perspective"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:116
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:117
msgid "Front"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:120
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:121
msgid "Top"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:124
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:125
msgid "Side"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:130
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:131
msgid "WebGL"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:138
msgid "Download model"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:146
msgid "File Format"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/stl.html:148
msgid "Object Height"
msgstr ""
#: mediagoblin/templates/mediagoblin/media_displays/video.html:40
msgid ""
"Sorry, this video will not work because \n"
@ -646,7 +712,7 @@ msgstr ""
#: mediagoblin/templates/mediagoblin/submit/collection.html:30
#: mediagoblin/templates/mediagoblin/submit/start.html:34
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:83
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:82
msgid "Add"
msgstr ""
@ -675,14 +741,6 @@ msgstr ""
msgid "Delete"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection.html:59
#, python-format
msgid ""
"<p>\n"
" %(collection_description)s\n"
" </p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:30
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
#, python-format
@ -690,7 +748,7 @@ msgid "Really delete %(title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_confirm_delete.html:47
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
msgid "Delete permanently"
msgstr ""
@ -699,7 +757,7 @@ msgstr ""
msgid "Really remove %(media_title)s from %(collection_title)s?"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:54
#: mediagoblin/templates/mediagoblin/user_pages/collection_item_confirm_remove.html:53
msgid "Remove"
msgstr ""
@ -725,12 +783,6 @@ msgstr ""
msgid "❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
#, python-format
msgid "Image for %(media_title)s"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
msgid "Add a comment"
msgstr ""
@ -757,13 +809,8 @@ msgid ""
" <p>%(date)s</p>"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:171
#: mediagoblin/templates/mediagoblin/user_pages/media.html:187
msgid "Attachments"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media.html:192
msgid "Add attachment"
#: mediagoblin/templates/mediagoblin/user_pages/media.html:202
msgid "Add media to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:35
@ -771,11 +818,11 @@ msgstr ""
msgid "Add %(title)s to collection"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:52
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:51
msgid "+"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:57
#: mediagoblin/templates/mediagoblin/user_pages/media_collect.html:56
msgid "Add a new collection"
msgstr ""
@ -846,41 +893,25 @@ msgstr ""
msgid "This user hasn't filled in their profile (yet)."
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
msgid "Change account settings"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
#: mediagoblin/templates/mediagoblin/user_pages/user.html:132
#, python-format
msgid "View all of %(username)s's media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
#: mediagoblin/templates/mediagoblin/user_pages/user.html:145
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:157
msgid "Add media"
msgstr ""
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:87
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:84
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:70
msgid "There doesn't seem to be any media here yet..."
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:39
#, python-format
msgid ""
"<br />\n"
" <a href=\"%(entry_url)s\">%(note)s</a>"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:47
#, python-format
msgid "<br /><a href=\"%(remove_url)s\" class=\"remove\">(remove)</a>"
#: mediagoblin/templates/mediagoblin/utils/collection_gallery.html:49
msgid "(remove)"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/collections.html:20
@ -900,7 +931,7 @@ msgstr ""
msgid "Location"
msgstr ""
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:38
#: mediagoblin/templates/mediagoblin/utils/geolocation_map.html:53
#, python-format
msgid "View on <a href=\"%(osm_url)s\">OpenStreetMap</a>"
msgstr ""
@ -939,6 +970,32 @@ msgstr ""
msgid "Could not read the image file."
msgstr ""
#: mediagoblin/tools/response.py:30
msgid "Oops!"
msgstr ""
#: mediagoblin/tools/response.py:31
msgid "An error occured"
msgstr ""
#: mediagoblin/tools/response.py:46
msgid "Operation not allowed"
msgstr ""
#: mediagoblin/tools/response.py:47
msgid ""
"Sorry Dave, I can't let you do that!</p><p>You have tried to perform a "
"function that you are not allowed to. Have you been trying to delete all "
"user accounts again?"
msgstr ""
#: mediagoblin/tools/response.py:55
msgid ""
"There doesn't seem to be a page at this address. Sorry!</p><p>If you're sure"
" the address is correct, maybe the page you're looking for has been moved or"
" deleted."
msgstr ""
#: mediagoblin/user_pages/forms.py:28
msgid "I am sure I want to delete this"
msgstr ""
@ -959,74 +1016,74 @@ msgstr ""
msgid "commented on your post"
msgstr ""
#: mediagoblin/user_pages/views.py:161
#: mediagoblin/user_pages/views.py:156
msgid "Oops, your comment was empty."
msgstr ""
#: mediagoblin/user_pages/views.py:167
#: mediagoblin/user_pages/views.py:162
msgid "Your comment has been posted!"
msgstr ""
#: mediagoblin/user_pages/views.py:235
#: mediagoblin/user_pages/views.py:230
msgid "You have to select or add a collection"
msgstr ""
#: mediagoblin/user_pages/views.py:243
#: mediagoblin/user_pages/views.py:238
#, python-format
msgid "\"%s\" already in collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:258
#: mediagoblin/user_pages/views.py:253
#, python-format
msgid "\"%s\" added to collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:266
#: mediagoblin/user_pages/views.py:261
msgid "Please check your entries and try again."
msgstr ""
#: mediagoblin/user_pages/views.py:297
#: mediagoblin/user_pages/views.py:292
msgid ""
"Some of the files with this entry seem to be missing. Deleting anyway."
msgstr ""
#: mediagoblin/user_pages/views.py:302
#: mediagoblin/user_pages/views.py:297
msgid "You deleted the media."
msgstr ""
#: mediagoblin/user_pages/views.py:309
#: mediagoblin/user_pages/views.py:304
msgid "The media was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:317
#: mediagoblin/user_pages/views.py:312
msgid "You are about to delete another user's media. Proceed with caution."
msgstr ""
#: mediagoblin/user_pages/views.py:379
#: mediagoblin/user_pages/views.py:370
msgid "You deleted the item from the collection."
msgstr ""
#: mediagoblin/user_pages/views.py:383
#: mediagoblin/user_pages/views.py:374
msgid "The item was not removed because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:393
#: mediagoblin/user_pages/views.py:384
msgid ""
"You are about to delete an item from another user's collection. Proceed with"
" caution."
msgstr ""
#: mediagoblin/user_pages/views.py:426
#: mediagoblin/user_pages/views.py:417
#, python-format
msgid "You deleted the collection \"%s\""
msgstr ""
#: mediagoblin/user_pages/views.py:433
#: mediagoblin/user_pages/views.py:424
msgid ""
"The collection was not deleted because you didn't check that you were sure."
msgstr ""
#: mediagoblin/user_pages/views.py:443
#: mediagoblin/user_pages/views.py:434
msgid ""
"You are about to delete another user's collection. Proceed with caution."
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -19,6 +19,7 @@ from beaker.util import parse_cache_config_options
import jinja2
from mediagoblin.tools import staticdirect
from mediagoblin.tools.translate import set_available_locales
from mediagoblin.init.config import (
read_mediagoblin_config, generate_validation_report)
from mediagoblin import mg_globals
@ -37,6 +38,11 @@ class ImproperlyConfigured(Error):
pass
def setup_locales():
"""Checks which language translations are available and sets them"""
set_available_locales()
def setup_global_and_app_config(config_path):
global_config, validation_result = read_mediagoblin_config(config_path)
app_config = global_config['mediagoblin']

View File

@ -14,14 +14,10 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.routing import add_route
from routes.route import Route
tag_routes = [
# Route('mediagoblin.listings.tags_home', "/",
# controller="mediagoblin.listings.views:tags_home"),
Route('mediagoblin.listings.tags_listing', "/{tag}/",
controller="mediagoblin.listings.views:tag_listing"),
Route('mediagoblin.listings.tag_atom_feed', "/{tag}/atom/",
controller="mediagoblin.listings.views:tag_atom_feed"),
]
add_route('mediagoblin.listings.tags_listing',
"/tag/<string:tag>/",
"mediagoblin.listings.views:tag_listing")
add_route('mediagoblin.listings.tag_atom_feed', "/tag/<string:tag>/atom/",
"mediagoblin.listings.views:tag_atom_feed")

View File

@ -14,10 +14,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
ENABLED_MEDDLEWARE = (
'mediagoblin.meddleware.noop:NoOpMeddleware',
ENABLED_MEDDLEWARE = [
'mediagoblin.meddleware.csrf:CsrfMeddleware',
)
]
class BaseMeddleware(object):

View File

@ -78,25 +78,6 @@ def get_media_managers():
yield media_type, sys.modules[media_type].MEDIA_MANAGER
def get_media_manager(_media_type):
'''
Get the MEDIA_MANAGER based on a media type string
Example::
get_media_type('mediagoblin.media_types.image')
'''
if not _media_type:
return False
for media_type, manager in get_media_managers():
if media_type in _media_type:
return manager
# Nope? Then raise an error
raise FileTypeNotSupported(
"MediaManager not in enabled types. Check media_types in config?")
def get_media_type_and_manager(filename):
'''
Try to find the media type based on the file name, extension

View File

@ -144,7 +144,5 @@ def process_audio(entry):
mgg.queue_store.delete_file(queued_filepath)
entry.save()
# clean up workbench
workbench.destroy_self()

View File

@ -24,5 +24,5 @@ MEDIA_MANAGER = {
# 'mediagoblin.media_types.image.processing'?
"sniff_handler": sniff_handler,
"display_template": "mediagoblin/media_displays/image.html",
"default_thumb": "images/media_thumbs/image.jpg",
"default_thumb": "images/media_thumbs/image.png",
"accepted_extensions": ["jpg", "jpeg", "png", "gif", "tiff"]}

View File

@ -0,0 +1,27 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.media_types.stl.processing import process_stl, \
sniff_handler
MEDIA_MANAGER = {
"human_readable": "stereo lithographics",
"processor": process_stl,
"sniff_handler": sniff_handler,
"display_template": "mediagoblin/media_displays/stl.html",
"default_thumb": "images/media_thumbs/video.jpg",
"accepted_extensions": ["obj", "stl"]}

View File

@ -0,0 +1,84 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import bpy, json, os
try:
CONFIG = json.loads(os.environ["RENDER_SETUP"])
MODEL_EXT = CONFIG["model_ext"]
MODEL_PATH = CONFIG["model_path"]
CAMERA_COORD = CONFIG["camera_coord"]
CAMERA_FOCUS = CONFIG["camera_focus"]
CAMERA_CLIP = CONFIG["camera_clip"]
CAMERA_TYPE = CONFIG["projection"]
CAMERA_ORTHO = CONFIG["greatest"] * 1.5
RENDER_WIDTH = CONFIG["width"]
RENDER_HEIGHT = CONFIG["height"]
RENDER_FILE = CONFIG["out_file"]
except KeyError:
print("Failed to load RENDER_SETUP environment variable.")
exit(1)
# add and setup camera
bpy.ops.object.camera_add(view_align=False, enter_editmode=False,
location = CAMERA_COORD)
camera_ob = bpy.data.objects[0]
camera = bpy.data.cameras[0]
camera.clip_end = CAMERA_CLIP
camera.ortho_scale = CAMERA_ORTHO
camera.type = CAMERA_TYPE
# add an empty for focusing the camera
bpy.ops.object.add(location=CAMERA_FOCUS)
target = bpy.data.objects[1]
bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.track_set(type="TRACKTO")
bpy.ops.object.select_all(action="DESELECT")
if MODEL_EXT == 'stl':
# import an stl model
bpy.ops.import_mesh.stl(filepath=MODEL_PATH)
elif MODEL_EXT == 'obj':
# import an obj model
bpy.ops.import_scene.obj(
filepath=MODEL_PATH,
use_smooth_groups=False,
use_image_search=False,
axis_forward="Y",
axis_up="Z")
# rotate the imported objects with meshes in the scene
if CAMERA_TYPE == "PERSP":
for obj in bpy.data.objects[2:]:
obj.rotation_euler[2]=-.3
# attempt to render
scene = bpy.data.scenes.values()[0]
scene.camera = camera_ob
scene.render.filepath = RENDER_FILE
scene.render.resolution_x = RENDER_WIDTH
scene.render.resolution_y = RENDER_HEIGHT
scene.render.resolution_percentage = 100
bpy.ops.render.render(write_still=True)

View File

@ -14,14 +14,4 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.meddleware import BaseMeddleware
class NoOpMeddleware(BaseMeddleware):
def process_request(self, request, controller):
pass
def process_response(self, request, response):
pass
MIGRATIONS = {}

View File

@ -0,0 +1,134 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import struct
class ThreeDeeParseError(Exception):
pass
class ThreeDee():
"""
3D model parser base class. Derrived classes are used for basic
analysis of 3D models, and are not intended to be used for 3D
rendering.
"""
def __init__(self, fileob):
self.verts = []
self.average = [0, 0, 0]
self.min = [None, None, None]
self.max = [None, None, None]
self.width = 0 # x axis
self.depth = 0 # y axis
self.height = 0 # z axis
self.load(fileob)
if not len(self.verts):
raise ThreeDeeParseError("Empty model.")
for vector in self.verts:
for i in range(3):
num = vector[i]
self.average[i] += num
if not self.min[i]:
self.min[i] = num
self.max[i] = num
else:
if self.min[i] > num:
self.min[i] = num
if self.max[i] < num:
self.max[i] = num
for i in range(3):
self.average[i]/=len(self.verts)
self.width = abs(self.min[0] - self.max[0])
self.depth = abs(self.min[1] - self.max[1])
self.height = abs(self.min[2] - self.max[2])
def load(self, fileob):
"""Override this method in your subclass."""
pass
class ObjModel(ThreeDee):
"""
Parser for textureless wavefront obj files. File format
reference: http://en.wikipedia.org/wiki/Wavefront_.obj_file
"""
def __vector(self, line, expected=3):
nums = map(float, line.strip().split(" ")[1:])
return tuple(nums[:expected])
def load(self, fileob):
for line in fileob:
if line[0] == "v":
self.verts.append(self.__vector(line))
class BinaryStlModel(ThreeDee):
"""
Parser for ascii-encoded stl files. File format reference:
http://en.wikipedia.org/wiki/STL_%28file_format%29#Binary_STL
"""
def load(self, fileob):
fileob.seek(80) # skip the header
count = struct.unpack("<I", fileob.read(4))[0]
for i in range(count):
fileob.read(12) # skip the normal vector
for v in range(3):
self.verts.append(struct.unpack("<3f", fileob.read(12)))
fileob.read(2) # skip the attribute bytes
def auto_detect(fileob, hint):
"""
Attempt to divine which parser to use to divine information about
the model / verify the file."""
if hint == "obj" or not hint:
try:
return ObjModel(fileob)
except ThreeDeeParseError:
pass
if hint == "stl" or not hint:
try:
# HACK Ascii formatted stls are similar enough to obj
# files that we can just use the same parser for both.
# Isn't that something?
return ObjModel(fileob)
except ThreeDeeParseError:
pass
except ValueError:
pass
try:
# It is pretty important that the binary stl model loader
# is tried second, because its possible for it to parse
# total garbage from plaintext =)
return BinaryStlModel(fileob)
except ThreeDeeParseError:
pass
except MemoryError:
pass
raise ThreeDeeParseError("Could not successfully parse the model :(")

View File

@ -0,0 +1,46 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin.db.sql.base import Base
from sqlalchemy import (
Column, Integer, Float, String, ForeignKey)
from sqlalchemy.orm import relationship, backref
class StlData(Base):
__tablename__ = "stl__mediadata"
# The primary key *and* reference to the main media_entry
media_entry = Column(Integer, ForeignKey('core__media_entries.id'),
primary_key=True)
get_media_entry = relationship("MediaEntry",
backref=backref("stl__media_data", cascade="all, delete-orphan"))
center_x = Column(Float)
center_y = Column(Float)
center_z = Column(Float)
width = Column(Float)
height = Column(Float)
depth = Column(Float)
file_type = Column(String)
DATA_MODEL = StlData
MODELS = [StlData]

View File

@ -0,0 +1,190 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
import json
import logging
import subprocess
import pkg_resources
from mediagoblin import mg_globals as mgg
from mediagoblin.processing import create_pub_filepath, \
FilenameBuilder
from mediagoblin.media_types.stl import model_loader
_log = logging.getLogger(__name__)
SUPPORTED_FILETYPES = ['stl', 'obj']
BLEND_FILE = pkg_resources.resource_filename(
'mediagoblin.media_types.stl',
os.path.join(
'assets',
'blender_render.blend'))
BLEND_SCRIPT = pkg_resources.resource_filename(
'mediagoblin.media_types.stl',
os.path.join(
'assets',
'blender_render.py'))
def sniff_handler(media_file, **kw):
if kw.get('media') is not None:
name, ext = os.path.splitext(kw['media'].filename)
clean_ext = ext[1:].lower()
if clean_ext in SUPPORTED_FILETYPES:
_log.info('Found file extension in supported filetypes')
return True
else:
_log.debug('Media present, extension not found in {0}'.format(
SUPPORTED_FILETYPES))
else:
_log.warning('Need additional information (keyword argument \'media\')'
' to be able to handle sniffing')
return False
def blender_render(config):
"""
Called to prerender a model.
"""
arg_string = "blender -b blender_render.blend -F "
arg_string +="JPEG -P blender_render.py"
env = {"RENDER_SETUP" : json.dumps(config), "DISPLAY":":0"}
subprocess.call(
["blender",
"-b", BLEND_FILE,
"-F", "JPEG",
"-P", BLEND_SCRIPT],
env=env)
def process_stl(entry):
"""
Code to process an stl or obj model.
"""
workbench = mgg.workbench_manager.create_workbench()
queued_filepath = entry.queued_media_file
queued_filename = workbench.localized_file(
mgg.queue_store, queued_filepath, 'source')
name_builder = FilenameBuilder(queued_filename)
ext = queued_filename.lower().strip()[-4:]
if ext.startswith("."):
ext = ext[1:]
else:
ext = None
# Attempt to parse the model file and divine some useful
# information about it.
with open(queued_filename, 'rb') as model_file:
model = model_loader.auto_detect(model_file, ext)
# generate preview images
greatest = [model.width, model.height, model.depth]
greatest.sort()
greatest = greatest[-1]
def snap(name, camera, width=640, height=640, project="ORTHO"):
filename = name_builder.fill(name)
workbench_path = workbench.joinpath(filename)
shot = {
"model_path": queued_filename,
"model_ext": ext,
"camera_coord": camera,
"camera_focus": model.average,
"camera_clip": greatest*10,
"greatest": greatest,
"projection": project,
"width": width,
"height": height,
"out_file": workbench_path,
}
blender_render(shot)
# make sure the image rendered to the workbench path
assert os.path.exists(workbench_path)
# copy it up!
with open(workbench_path, 'rb') as rendered_file:
public_path = create_pub_filepath(entry, filename)
with mgg.public_store.get_file(public_path, "wb") as public_file:
public_file.write(rendered_file.read())
return public_path
thumb_path = snap(
"{basename}.thumb.jpg",
[0, greatest*-1.5, greatest],
mgg.global_config['media:thumb']['max_width'],
mgg.global_config['media:thumb']['max_height'],
project="PERSP")
perspective_path = snap(
"{basename}.perspective.jpg",
[0, greatest*-1.5, greatest], project="PERSP")
topview_path = snap(
"{basename}.top.jpg",
[model.average[0], model.average[1], greatest*2])
frontview_path = snap(
"{basename}.front.jpg",
[model.average[0], greatest*-2, model.average[2]])
sideview_path = snap(
"{basename}.side.jpg",
[greatest*-2, model.average[1], model.average[2]])
## Save the public file stuffs
model_filepath = create_pub_filepath(
entry, name_builder.fill('{basename}{ext}'))
with mgg.public_store.get_file(model_filepath, 'wb') as model_file:
with open(queued_filename, 'rb') as queued_file:
model_file.write(queued_file.read())
# Remove queued media file from storage and database
mgg.queue_store.delete_file(queued_filepath)
entry.queued_media_file = []
# Insert media file information into database
media_files_dict = entry.setdefault('media_files', {})
media_files_dict[u'original'] = model_filepath
media_files_dict[u'thumb'] = thumb_path
media_files_dict[u'perspective'] = perspective_path
media_files_dict[u'top'] = topview_path
media_files_dict[u'side'] = sideview_path
media_files_dict[u'front'] = frontview_path
# Put model dimensions into the database
dimensions = {
"center_x" : model.average[0],
"center_y" : model.average[1],
"center_z" : model.average[2],
"width" : model.width,
"height" : model.height,
"depth" : model.depth,
"file_type" : ext,
}
entry.media_data_init(**dimensions)
# clean up workbench
workbench.destroy_self()

Some files were not shown because too many files have changed in this diff Show More