Merged changes with upstream
This commit is contained in:
2
AUTHORS
2
AUTHORS
@@ -13,6 +13,7 @@ Thank you!
|
|||||||
* Alex Camelio
|
* Alex Camelio
|
||||||
* Bernhard Keller
|
* Bernhard Keller
|
||||||
* Caleb Forbes Davis V
|
* Caleb Forbes Davis V
|
||||||
|
* Corey Farwell
|
||||||
* Chris Moylan
|
* Chris Moylan
|
||||||
* Christopher Allan Webber
|
* Christopher Allan Webber
|
||||||
* Daniel Neel
|
* Daniel Neel
|
||||||
@@ -27,6 +28,7 @@ Thank you!
|
|||||||
* Nathan Yergler
|
* Nathan Yergler
|
||||||
* Odin Hørthe Omdal
|
* Odin Hørthe Omdal
|
||||||
* Osama Khalid
|
* Osama Khalid
|
||||||
|
* Pablo J. Urbano Santos
|
||||||
* Rasmus Larsson
|
* Rasmus Larsson
|
||||||
* Sam Kleinman
|
* Sam Kleinman
|
||||||
* Sebastian Spaeth
|
* Sebastian Spaeth
|
||||||
|
|||||||
5
MANIFEST.in
Normal file
5
MANIFEST.in
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
recursive-include mediagoblin/templates *.html
|
||||||
|
recursive-include mediagoblin/static *.js *.css *.png *.svg
|
||||||
|
recursive-include mediagoblin/tests *.ini
|
||||||
|
recursive-include docs *.rst *.html
|
||||||
|
|
||||||
17
README
17
README
@@ -8,19 +8,18 @@ What is GNU MediaGoblin?
|
|||||||
* Initially, a place to store all your photos that’s as awesome as, if
|
* Initially, a place to store all your photos that’s as awesome as, if
|
||||||
not more awesome than, existing network services (Flickr, SmugMug,
|
not more awesome than, existing network services (Flickr, SmugMug,
|
||||||
Picasa, etc)
|
Picasa, etc)
|
||||||
* Later, a place for all sorts of media, such as video, music, etc hosting.
|
|
||||||
* Federated with OStatus!
|
|
||||||
* Customizable!
|
* Customizable!
|
||||||
* A place for people to collaborate and show off original and derived
|
* A place for people to collaborate and show off original and derived
|
||||||
creations. Free, as in freedom. We’re a GNU project in the making,
|
creations. Free, as in freedom. We’re a GNU project after all.
|
||||||
afterall.
|
* Later, a place for all sorts of media, such as video, music, etc hosting.
|
||||||
|
* Later, federated with OStatus!
|
||||||
|
|
||||||
|
|
||||||
Is it ready for me to use?
|
Is it ready for me to use?
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
Not yet! We're working on it and we hope to have a usable system by
|
Yes! But with caveats. The software is usable and there are instances
|
||||||
September / October 2011.
|
running, but it's still in its early stages.
|
||||||
|
|
||||||
|
|
||||||
Can I help/hang out/participate/whisper sweet nothings in your ear?
|
Can I help/hang out/participate/whisper sweet nothings in your ear?
|
||||||
@@ -33,9 +32,9 @@ hang out, see `our Join page <http://mediagoblin.org/join/>`_
|
|||||||
Where is the documentation?
|
Where is the documentation?
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
The beginnings of a user manual is located in the ``docs/`` directory
|
The beginnings of a site administration manual is located in the ``docs/``
|
||||||
in HTML, Texinfo, and source (Restructured Text) forms. It's also
|
directory in HTML, Texinfo, and source (Restructured Text) forms. It's
|
||||||
available online at http://docs.mediagoblin.org/ in HTML form.
|
also available online at http://docs.mediagoblin.org/ in HTML form.
|
||||||
|
|
||||||
Contributor/developer documentation as well as documentation on the
|
Contributor/developer documentation as well as documentation on the
|
||||||
project processes and infrastructure is located on
|
project processes and infrastructure is located on
|
||||||
|
|||||||
@@ -4,9 +4,12 @@
|
|||||||
[jinja2: mediagoblin/templates/**.html]
|
[jinja2: mediagoblin/templates/**.html]
|
||||||
# Extract jinja templates (html)
|
# Extract jinja templates (html)
|
||||||
encoding = utf-8
|
encoding = utf-8
|
||||||
|
extensions = jinja2.ext.autoescape
|
||||||
|
|
||||||
[jinja2: mediagoblin/templates/**.txt]
|
[jinja2: mediagoblin/templates/**.txt]
|
||||||
# Extract jinja templates (text)
|
# Extract jinja templates (text)
|
||||||
encoding = utf-8
|
encoding = utf-8
|
||||||
|
extensions = jinja2.ext.autoescape
|
||||||
|
|
||||||
# # Extraction from JavaScript files
|
# # Extraction from JavaScript files
|
||||||
# [javascript: mediagoblin/static/js/**.js]
|
# [javascript: mediagoblin/static/js/**.js]
|
||||||
|
|||||||
48
devtools/update_translations.sh
Executable file
48
devtools/update_translations.sh
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
|
# Copyright (C) 2011 Free Software Foundation, Inc
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# exit if anything fails
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "==> checking out master"
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
echo "==> pulling git master"
|
||||||
|
git pull
|
||||||
|
|
||||||
|
echo "==> pulling present translations"
|
||||||
|
./bin/tx pull -a
|
||||||
|
git add mediagoblin/i18n/
|
||||||
|
git commit -m "Committing present MediaGoblin translations before pushing extracted messages"
|
||||||
|
|
||||||
|
echo "==> Extracting translations"
|
||||||
|
./bin/pybabel extract -F babel.ini -o mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po .
|
||||||
|
|
||||||
|
echo "==> Pushing extracted translations to Transifex"
|
||||||
|
./bin/tx push -s
|
||||||
|
|
||||||
|
# gets the new strings added to all files
|
||||||
|
echo "==> Re-Pulling translations from Transifex"
|
||||||
|
./bin/tx pull -a
|
||||||
|
|
||||||
|
echo "==> Compiling .mo files"
|
||||||
|
./bin/pybabel compile -D mediagoblin -d mediagoblin/i18n/
|
||||||
|
|
||||||
|
echo "==> Committing to git"
|
||||||
|
git add mediagoblin/i18n/
|
||||||
|
git commit -m "Committing extracted and compiled translations"
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{#
|
|
||||||
default/layout.html
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Sphinx layout template for the default theme.
|
|
||||||
|
|
||||||
:copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
|
|
||||||
:license: BSD, see LICENSE for details.
|
|
||||||
#}
|
|
||||||
{% extends "basic/layout.html" %}
|
|
||||||
|
|
||||||
{% if theme_collapsiblesidebar|tobool %}
|
|
||||||
{% set script_files = script_files + ['_static/sidebar.js'] %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{%- block footer %}
|
|
||||||
<div class="footer">
|
|
||||||
<div>
|
|
||||||
{% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
|
|
||||||
{%- if last_updated %}
|
|
||||||
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
|
||||||
{%- endif %}
|
|
||||||
{% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
|
|
||||||
</div>
|
|
||||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">{{ shorttitle|e }}</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://bluesock.org/~willg/" property="cc:attributionName" rel="cc:attributionURL">Will Kahn-Greene</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.<br />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-163840-8']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
{%- endblock %}
|
|
||||||
@@ -1,299 +0,0 @@
|
|||||||
/*
|
|
||||||
* default.css_t
|
|
||||||
* ~~~~~~~~~~~~~
|
|
||||||
*
|
|
||||||
* Sphinx stylesheet -- default theme.
|
|
||||||
*
|
|
||||||
* :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
|
|
||||||
* :license: BSD, see LICENSE for details.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import url("basic.css");
|
|
||||||
|
|
||||||
/* -- page layout ----------------------------------------------------------- */
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: {{ theme_bodyfont }};
|
|
||||||
font-size: 100%;
|
|
||||||
background-color: {{ theme_footerbgcolor }};
|
|
||||||
color: #000;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.document {
|
|
||||||
background-color: {{ theme_sidebarbgcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.documentwrapper {
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.bodywrapper {
|
|
||||||
margin: 0 0 0 230px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.body {
|
|
||||||
background-color: {{ theme_bgcolor }};
|
|
||||||
color: {{ theme_textcolor }};
|
|
||||||
padding: 0 20px 30px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
{%- if theme_rightsidebar|tobool %}
|
|
||||||
div.bodywrapper {
|
|
||||||
margin: 0 230px 0 0;
|
|
||||||
}
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
div.footer {
|
|
||||||
color: {{ theme_footertextcolor }};
|
|
||||||
width: 100%;
|
|
||||||
padding: 9px 0 9px 0;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.footer a {
|
|
||||||
color: {{ theme_footertextcolor }};
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.related {
|
|
||||||
background-color: {{ theme_relbarbgcolor }};
|
|
||||||
line-height: 30px;
|
|
||||||
color: {{ theme_relbartextcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.related a {
|
|
||||||
color: {{ theme_relbarlinkcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar {
|
|
||||||
{%- if theme_stickysidebar|tobool %}
|
|
||||||
top: 30px;
|
|
||||||
bottom: 0;
|
|
||||||
margin: 0;
|
|
||||||
position: fixed;
|
|
||||||
overflow: auto;
|
|
||||||
height: auto;
|
|
||||||
{%- endif %}
|
|
||||||
{%- if theme_rightsidebar|tobool %}
|
|
||||||
float: right;
|
|
||||||
{%- if theme_stickysidebar|tobool %}
|
|
||||||
right: 0;
|
|
||||||
{%- endif %}
|
|
||||||
{%- endif %}
|
|
||||||
}
|
|
||||||
|
|
||||||
{%- if theme_stickysidebar|tobool %}
|
|
||||||
/* this is nice, but it it leads to hidden headings when jumping
|
|
||||||
to an anchor */
|
|
||||||
/*
|
|
||||||
div.related {
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.documentwrapper {
|
|
||||||
margin-top: 30px;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
div.sphinxsidebar h3 {
|
|
||||||
font-family: {{ theme_headfont }};
|
|
||||||
color: {{ theme_sidebartextcolor }};
|
|
||||||
font-size: 1.4em;
|
|
||||||
font-weight: normal;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar h3 a {
|
|
||||||
color: {{ theme_sidebartextcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar h4 {
|
|
||||||
font-family: {{ theme_headfont }};
|
|
||||||
color: {{ theme_sidebartextcolor }};
|
|
||||||
font-size: 1.3em;
|
|
||||||
font-weight: normal;
|
|
||||||
margin: 5px 0 0 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar p {
|
|
||||||
color: {{ theme_sidebartextcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar p.topless {
|
|
||||||
margin: 5px 10px 10px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar ul {
|
|
||||||
margin: 10px;
|
|
||||||
padding: 0;
|
|
||||||
color: {{ theme_sidebartextcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar a {
|
|
||||||
color: {{ theme_sidebarlinkcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sphinxsidebar input {
|
|
||||||
border: 1px solid {{ theme_sidebarlinkcolor }};
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* -- hyperlink styles ------------------------------------------------------ */
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: {{ theme_linkcolor }};
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:visited {
|
|
||||||
color: {{ theme_visitedlinkcolor }};
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
{% if theme_externalrefs|tobool %}
|
|
||||||
a.external {
|
|
||||||
text-decoration: none;
|
|
||||||
border-bottom: 1px dashed {{ theme_linkcolor }};
|
|
||||||
}
|
|
||||||
|
|
||||||
a.external:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
/* -- body styles ----------------------------------------------------------- */
|
|
||||||
|
|
||||||
div.body h1,
|
|
||||||
div.body h2,
|
|
||||||
div.body h3,
|
|
||||||
div.body h4,
|
|
||||||
div.body h5,
|
|
||||||
div.body h6 {
|
|
||||||
font-family: {{ theme_headfont }};
|
|
||||||
background-color: {{ theme_headbgcolor }};
|
|
||||||
font-weight: normal;
|
|
||||||
color: {{ theme_headtextcolor }};
|
|
||||||
border-bottom: 1px solid #ccc;
|
|
||||||
margin: 20px -20px 10px -20px;
|
|
||||||
padding: 3px 0 3px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.body h1 { margin-top: 0; font-size: 200%; }
|
|
||||||
div.body h2 { font-size: 160%; }
|
|
||||||
div.body h3 { font-size: 140%; }
|
|
||||||
div.body h4 { font-size: 120%; }
|
|
||||||
div.body h5 { font-size: 110%; }
|
|
||||||
div.body h6 { font-size: 100%; }
|
|
||||||
|
|
||||||
a.headerlink {
|
|
||||||
color: {{ theme_headlinkcolor }};
|
|
||||||
font-size: 0.8em;
|
|
||||||
padding: 0 4px 0 4px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.headerlink:hover {
|
|
||||||
background-color: {{ theme_headlinkcolor }};
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.body p, div.body dd, div.body li {
|
|
||||||
text-align: justify;
|
|
||||||
line-height: 130%;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.admonition p.admonition-title + p {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.admonition p {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.admonition pre {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.admonition ul, div.admonition ol {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.note {
|
|
||||||
background-color: #eee;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.seealso {
|
|
||||||
background-color: #ffc;
|
|
||||||
border: 1px solid #ff6;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.topic {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.warning {
|
|
||||||
background-color: #ffe4e4;
|
|
||||||
border: 1px solid #f66;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.admonition-title {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.admonition-title:after {
|
|
||||||
content: ":";
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
padding: 5px;
|
|
||||||
background-color: {{ theme_codebgcolor }};
|
|
||||||
color: {{ theme_codetextcolor }};
|
|
||||||
line-height: 120%;
|
|
||||||
border: 1px solid #ac9;
|
|
||||||
border-left: none;
|
|
||||||
border-right: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
tt {
|
|
||||||
background-color: #ecf0f3;
|
|
||||||
padding: 0 1px 0 1px;
|
|
||||||
font-size: 0.95em;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
background-color: #ede;
|
|
||||||
}
|
|
||||||
|
|
||||||
.warning tt {
|
|
||||||
background: #efc2c2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.note tt {
|
|
||||||
background: #d6d6d6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.viewcode-back {
|
|
||||||
font-family: {{ theme_bodyfont }};
|
|
||||||
}
|
|
||||||
|
|
||||||
div.viewcode-block:target {
|
|
||||||
background-color: #f4debf;
|
|
||||||
border-top: 1px solid #ac9;
|
|
||||||
border-bottom: 1px solid #ac9;
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
[theme]
|
|
||||||
inherit = basic
|
|
||||||
stylesheet = default.css
|
|
||||||
pygments_style = sphinx
|
|
||||||
|
|
||||||
[options]
|
|
||||||
rightsidebar = false
|
|
||||||
stickysidebar = false
|
|
||||||
collapsiblesidebar = false
|
|
||||||
externalrefs = false
|
|
||||||
|
|
||||||
footerbgcolor = #b11818
|
|
||||||
footertextcolor = #ffffff
|
|
||||||
sidebarbgcolor = #6a0000
|
|
||||||
sidebartextcolor = #ffffff
|
|
||||||
sidebarlinkcolor = #98dbcc
|
|
||||||
relbarbgcolor = #b11818
|
|
||||||
relbartextcolor = #ffffff
|
|
||||||
relbarlinkcolor = #ffffff
|
|
||||||
bgcolor = #ffffff
|
|
||||||
textcolor = #000000
|
|
||||||
headbgcolor = #fdeded
|
|
||||||
headtextcolor = #20435c
|
|
||||||
headlinkcolor = #c60f0f
|
|
||||||
linkcolor = #355f7c
|
|
||||||
visitedlinkcolor = #355f7c
|
|
||||||
codebgcolor = #eeffcc
|
|
||||||
codetextcolor = #333333
|
|
||||||
|
|
||||||
bodyfont = sans-serif
|
|
||||||
headfont = 'Trebuchet MS', sans-serif
|
|
||||||
@@ -28,7 +28,7 @@ sys.path.insert(0, os.path.abspath('.'))
|
|||||||
extensions = ["mgext.youcanhelp"]
|
extensions = ["mgext.youcanhelp"]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['source/_templates']
|
||||||
|
|
||||||
# The suffix of source filenames.
|
# The suffix of source filenames.
|
||||||
source_suffix = '.rst'
|
source_suffix = '.rst'
|
||||||
@@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors'
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.0.5'
|
version = '0.3.0'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.0.5'
|
release = '0.3.0-dev'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
@@ -91,7 +91,8 @@ pygments_style = 'sphinx'
|
|||||||
|
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
# a list of builtin themes.
|
# a list of builtin themes.
|
||||||
html_theme = 'default'
|
# html_theme = 'default'
|
||||||
|
html_theme = 'mg'
|
||||||
|
|
||||||
# Theme options are theme-specific and customize the look and feel of a theme
|
# Theme options are theme-specific and customize the look and feel of a theme
|
||||||
# further. For a list of options available for each theme, see the
|
# further. For a list of options available for each theme, see the
|
||||||
@@ -99,7 +100,7 @@ html_theme = 'default'
|
|||||||
#html_theme_options = {}
|
#html_theme_options = {}
|
||||||
|
|
||||||
# Add any paths that contain custom themes here, relative to this directory.
|
# Add any paths that contain custom themes here, relative to this directory.
|
||||||
#html_theme_path = []
|
html_theme_path = ['themes']
|
||||||
|
|
||||||
# The name for this set of Sphinx documents. If None, it defaults to
|
# The name for this set of Sphinx documents. If None, it defaults to
|
||||||
# "<project> v<release> documentation".
|
# "<project> v<release> documentation".
|
||||||
@@ -110,7 +111,7 @@ html_theme = 'default'
|
|||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top
|
# The name of an image file (relative to this directory) to place at the top
|
||||||
# of the sidebar.
|
# of the sidebar.
|
||||||
#html_logo = None
|
html_logo = 'logo_docs.png'
|
||||||
|
|
||||||
# The name of an image file (within the static path) to use as favicon of the
|
# The name of an image file (within the static path) to use as favicon of the
|
||||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ mediagoblin.ini
|
|||||||
tweak settings for MediaGoblin, you'll usually tweak them here.
|
tweak settings for MediaGoblin, you'll usually tweak them here.
|
||||||
|
|
||||||
paste.ini
|
paste.ini
|
||||||
This is primarily a server configuration file, on the python side
|
This is primarily a server configuration file, on the Python side
|
||||||
(specifically, on the wsgi side, via `paste deploy
|
(specifically, on the WSGI side, via `paste deploy
|
||||||
<http://pythonpaste.org/deploy/>`_ / `paste script
|
<http://pythonpaste.org/deploy/>`_ / `paste script
|
||||||
<http://pythonpaste.org/script/>`_). It also sets up some
|
<http://pythonpaste.org/script/>`_). It also sets up some
|
||||||
middleware that you can mostly ignore, except to configure
|
middleware that you can mostly ignore, except to configure
|
||||||
sessions... more on that later. If you are adding a different
|
sessions... more on that later. If you are adding a different
|
||||||
python server other than fastcgi / plain http, you might configure
|
Python server other than fastcgi / plain HTTP, you might configure
|
||||||
it here. You probably won't need to change this file very much.
|
it here. You probably won't need to change this file very much.
|
||||||
|
|
||||||
|
|
||||||
@@ -47,19 +47,23 @@ Let's assume you're doing the virtualenv setup described elsewhere in this
|
|||||||
manual, and you need to make local tweaks to the config files. How do you do
|
manual, and you need to make local tweaks to the config files. How do you do
|
||||||
that? Let's see.
|
that? Let's see.
|
||||||
|
|
||||||
To make changes to mediagoblin.ini:
|
To make changes to mediagoblin.ini ::
|
||||||
|
|
||||||
cp mediagoblin.ini mediagoblin_local.ini
|
cp mediagoblin.ini mediagoblin_local.ini
|
||||||
|
|
||||||
To make changes to paste.ini:
|
To make changes to paste.ini ::
|
||||||
|
|
||||||
cp paste.ini paste_local.ini
|
cp paste.ini paste_local.ini
|
||||||
|
|
||||||
From here you should be able to make direct adjustments to the files,
|
From here you should be able to make direct adjustments to the files,
|
||||||
and most of the commands described elsewhere in this manual will "notice"
|
and most of the commands described elsewhere in this manual will "notice"
|
||||||
your local config files and use those instead of the non-local version.
|
your local config files and use those instead of the non-local version.
|
||||||
|
|
||||||
(Note that all commands provide a way to pass in a specific config
|
.. note::
|
||||||
file also, usually by a -cf flag.)
|
|
||||||
|
Note that all commands provide a way to pass in a specific config
|
||||||
|
file also, usually by a ``-cf`` flag.
|
||||||
|
|
||||||
|
|
||||||
Common changes
|
Common changes
|
||||||
==============
|
==============
|
||||||
@@ -69,7 +73,7 @@ Enabling email notifications
|
|||||||
|
|
||||||
You'll almost certainly want to enable sending emails. By default,
|
You'll almost certainly want to enable sending emails. By default,
|
||||||
MediaGoblin doesn't really do this... for the sake of developer
|
MediaGoblin doesn't really do this... for the sake of developer
|
||||||
convenience, it runs in "email debug mode". Change this:
|
convenience, it runs in "email debug mode". Change this::
|
||||||
|
|
||||||
email_debug_mode = false
|
email_debug_mode = false
|
||||||
|
|
||||||
@@ -90,11 +94,11 @@ they sound like.
|
|||||||
All other configuration changes
|
All other configuration changes
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
To be perfectly honest, there are quite a few options and I'm not
|
To be perfectly honest, there are quite a few options and we haven't had
|
||||||
going to be able to get to documanting them all in time for 0.1.0.
|
time to document them all
|
||||||
|
|
||||||
So here's a cop-out section saying that if you get into trouble, hop
|
So here's a cop-out section saying that if you get into trouble, hop
|
||||||
onto IRC and we'll help you out:
|
onto IRC and we'll help you out::
|
||||||
|
|
||||||
#mediagoblin on irc.freenode.net
|
#mediagoblin on irc.freenode.net
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,9 @@ it simple with some assumptions and use a setup that combines
|
|||||||
mediagoblin + virtualenv + fastcgi + nginx on a .deb or .rpm based
|
mediagoblin + virtualenv + fastcgi + nginx on a .deb or .rpm based
|
||||||
GNU/Linux distro.
|
GNU/Linux distro.
|
||||||
|
|
||||||
Note: these tools are for administrators wanting to deploy a fresh
|
.. note::
|
||||||
|
|
||||||
|
These tools are for site administrators wanting to deploy a fresh
|
||||||
install. If instead you want to join in as a contributor, see our
|
install. If instead you want to join in as a contributor, see our
|
||||||
`Hacking HOWTO <http://wiki.mediagoblin.org/HackingHowto>`_ instead.
|
`Hacking HOWTO <http://wiki.mediagoblin.org/HackingHowto>`_ instead.
|
||||||
|
|
||||||
@@ -33,12 +35,15 @@ MediaGoblin has the following core dependencies:
|
|||||||
On a DEB-based system (e.g Debian, gNewSense, Trisquel, Ubuntu, and
|
On a DEB-based system (e.g Debian, gNewSense, Trisquel, Ubuntu, and
|
||||||
derivatives) issue the following command: ::
|
derivatives) issue the following command: ::
|
||||||
|
|
||||||
sudo apt-get install mongodb git-core python python-dev python-lxml python-imaging python-virtualenv
|
sudo apt-get install mongodb git-core python python-dev python-lxml \
|
||||||
|
python-imaging python-virtualenv
|
||||||
|
|
||||||
On a RPM-based system (e.g. Fedora, RedHat, and derivatives) issue the
|
On a RPM-based system (e.g. Fedora, RedHat, and derivatives) issue the
|
||||||
following command: ::
|
following command: ::
|
||||||
|
|
||||||
yum install mongodb-server python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv
|
yum install mongodb-server python-paste-deploy python-paste-script \
|
||||||
|
git-core python python-devel python-lxml python-imaging \
|
||||||
|
python-virtualenv
|
||||||
|
|
||||||
Configure MongoDB
|
Configure MongoDB
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
@@ -46,10 +51,11 @@ Configure MongoDB
|
|||||||
After installing MongoDB some preliminary database configuration may
|
After installing MongoDB some preliminary database configuration may
|
||||||
be necessary.
|
be necessary.
|
||||||
|
|
||||||
Ensure that MongoDB `journaling <http://www.mongodb.org/display/DOCS/Journaling>`_
|
Ensure that MongoDB `journaling
|
||||||
is enabled. Journaling is enabled by default in version 2.0 and later
|
<http://www.mongodb.org/display/DOCS/Journaling>`_ is enabled. Journaling
|
||||||
64-bit MongoDB instances. Check your deployment, and consider enabling
|
is enabled by default in version 2.0 and later 64-bit MongoDB instances.
|
||||||
journaling if you're running 32-bit systems or earlier version.
|
Check your deployment, and consider enabling journaling if you're running
|
||||||
|
32-bit systems or earlier version.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
@@ -77,38 +83,39 @@ create "system account" or dedicated service user. Ensure that it is
|
|||||||
not possible to log in to your system with as this user.
|
not possible to log in to your system with as this user.
|
||||||
|
|
||||||
You should create a working directory for MediaGoblin. This document
|
You should create a working directory for MediaGoblin. This document
|
||||||
assumes your local git repository will be located at ``/srv/mediagoblin.example.org/mediagoblin/``
|
assumes your local git repository will be located at
|
||||||
for this documentation. Substitute your prefer ed local deployment path
|
``/srv/mediagoblin.example.org/mediagoblin/`` for this documentation.
|
||||||
as needed.
|
Substitute your prefer ed local deployment path as needed.
|
||||||
|
|
||||||
This document assumes that all operations are performed as this
|
This document assumes that all operations are performed as this
|
||||||
user. To drop privileges to this user, run the following command: ::
|
user. To drop privileges to this user, run the following command: ::
|
||||||
|
|
||||||
|
su - [mediagoblin]
|
||||||
|
|
||||||
su - [mediagoblin]``
|
Where, "``[mediagoblin]``" is the username of the system user that will
|
||||||
|
|
||||||
Where, "``[mediagoblin]`` is the username of the system user that will
|
|
||||||
run MediaGoblin.
|
run MediaGoblin.
|
||||||
|
|
||||||
Install MediaGoblin and Virtualenv
|
Install MediaGoblin and Virtualenv
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
As of |version|, MediaGoblin has a rapid development pace. As a result
|
As of |version|, MediaGoblin has a rapid development pace. As a result
|
||||||
the following instructions recommend installing from the ``master``
|
the following instructions recommend installing from the ``master``
|
||||||
branch of the git repository. Eventually production deployments will
|
branch of the git repository. Eventually production deployments will
|
||||||
want to transition to running from more consistent releases.
|
want to transition to running from more consistent releases.
|
||||||
|
|
||||||
Issue the following commands, to create and change the working
|
Issue the following commands, to create and change the working
|
||||||
directory. Modify these commands to reflect your own environment: ::
|
directory. Modify these commands to reflect your own environment::
|
||||||
|
|
||||||
mkdir -p /srv/mediagoblin.example.org/
|
mkdir -p /srv/mediagoblin.example.org/
|
||||||
cd /srv/mediagoblin.example.org/
|
cd /srv/mediagoblin.example.org/
|
||||||
|
|
||||||
Clone the MediaGoblin repository: ::
|
Clone the MediaGoblin repository::
|
||||||
|
|
||||||
git clone git://gitorious.org/mediagoblin/mediagoblin.git
|
git clone git://gitorious.org/mediagoblin/mediagoblin.git
|
||||||
|
|
||||||
And setup the in-package virtualenv: ::
|
And setup the in-package virtualenv::
|
||||||
|
|
||||||
cd mediagoblin
|
cd mediagoblin
|
||||||
virtualenv . && ./bin/python setup.py develop
|
virtualenv . && ./bin/python setup.py develop
|
||||||
@@ -127,9 +134,14 @@ more reliable and considerably easier to configure and illustrate. If
|
|||||||
you're familiar with Python packaging you may consider deploying with
|
you're familiar with Python packaging you may consider deploying with
|
||||||
your preferred the method.
|
your preferred the method.
|
||||||
|
|
||||||
|
Assuming you are going to deploy with FastCGI, you should also install
|
||||||
|
flup::
|
||||||
|
|
||||||
|
./bin/easy_install flup
|
||||||
|
|
||||||
This concludes the initial configuration of the development
|
This concludes the initial configuration of the development
|
||||||
environment. In the future, if at any point you want update your
|
environment. In the future, if at any point you want update your
|
||||||
codebase, you should also run: ::
|
codebase, you should also run::
|
||||||
|
|
||||||
./bin/python setup.py develop --upgrade && ./bin/gmg migrate.
|
./bin/python setup.py develop --upgrade && ./bin/gmg migrate.
|
||||||
|
|
||||||
@@ -140,7 +152,7 @@ Test the Server
|
|||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
At this point MediaGoblin should be properly installed. You can
|
At this point MediaGoblin should be properly installed. You can
|
||||||
test the deployment with the following command: ::
|
test the deployment with the following command::
|
||||||
|
|
||||||
./lazyserver.sh --server-name=broadcast
|
./lazyserver.sh --server-name=broadcast
|
||||||
|
|
||||||
@@ -151,7 +163,7 @@ Connect the Webserver to MediaGoblin with FastCGI
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This section describes how to configure MediaGoblin to work via
|
This section describes how to configure MediaGoblin to work via
|
||||||
fastcgi. Our configuration example will use nginx, however, you may
|
FastCGI. Our configuration example will use nginx, however, you may
|
||||||
use any webserver of your choice as long as it supports the FastCGI
|
use any webserver of your choice as long as it supports the FastCGI
|
||||||
protocol. If you do not already have a web server, consider nginx, as
|
protocol. If you do not already have a web server, consider nginx, as
|
||||||
the configuration files may be more clear than the
|
the configuration files may be more clear than the
|
||||||
@@ -161,14 +173,14 @@ Create a configuration file at
|
|||||||
``/srv/mediagoblin.example.org/nginx.conf`` and create a symbolic link
|
``/srv/mediagoblin.example.org/nginx.conf`` and create a symbolic link
|
||||||
into a directory that will be included in your ``nginx`` configuration
|
into a directory that will be included in your ``nginx`` configuration
|
||||||
(e.g. "``/etc/nginx/sites-enabled`` or ``/etc/nginx/conf.d``) with
|
(e.g. "``/etc/nginx/sites-enabled`` or ``/etc/nginx/conf.d``) with
|
||||||
one of the following commands (as the root user:) ::
|
one of the following commands (as the root user)::
|
||||||
|
|
||||||
ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/
|
ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/
|
||||||
ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/
|
ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/
|
||||||
|
|
||||||
Modify these commands and locations depending on your preferences and
|
Modify these commands and locations depending on your preferences and
|
||||||
the existing configuration of your nginx instance. The contents of
|
the existing configuration of your nginx instance. The contents of
|
||||||
this ``nginx.conf`` file should be modeled on the following: ::
|
this ``nginx.conf`` file should be modeled on the following::
|
||||||
|
|
||||||
server {
|
server {
|
||||||
#################################################
|
#################################################
|
||||||
@@ -191,13 +203,16 @@ this ``nginx.conf`` file should be modeled on the following: ::
|
|||||||
# This is the section you should read
|
# This is the section you should read
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
|
# Change this to update the upload size limit for your users
|
||||||
|
client_max_body_size 8m;
|
||||||
|
|
||||||
server_name mediagoblin.example.org www.mediagoblin.example.org;
|
server_name mediagoblin.example.org www.mediagoblin.example.org;
|
||||||
access_log /var/log/nginx/mediagoblin.example.access.log;
|
access_log /var/log/nginx/mediagoblin.example.access.log;
|
||||||
error_log /var/log/nginx/mediagoblin.example.error.log;
|
error_log /var/log/nginx/mediagoblin.example.error.log;
|
||||||
|
|
||||||
# MediaGoblin's stock static files: CSS, JS, etc.
|
# MediaGoblin's stock static files: CSS, JS, etc.
|
||||||
location /mgoblin_static/ {
|
location /mgoblin_static/ {
|
||||||
alias /srv/mediagoblin.example.org/mediagoblin/static/;
|
alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/static/;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Instance specific media:
|
# Instance specific media:
|
||||||
@@ -205,23 +220,28 @@ this ``nginx.conf`` file should be modeled on the following: ::
|
|||||||
alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/;
|
alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Mounting MediaGoblin itself via fastcgi.
|
# Mounting MediaGoblin itself via FastCGI.
|
||||||
location / {
|
location / {
|
||||||
fastcgi_pass 127.0.0.1:26543;
|
fastcgi_pass 127.0.0.1:26543;
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
|
|
||||||
|
# our understanding vs nginx's handling of script_name vs
|
||||||
|
# path_info don't match :)
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_script_name;
|
||||||
|
fastcgi_param SCRIPT_NAME "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Now, nginx instance is configured to serve the MediaGoblin
|
Now, nginx instance is configured to serve the MediaGoblin
|
||||||
application. Perform a quick test to ensure that this configuration
|
application. Perform a quick test to ensure that this configuration
|
||||||
works. Restart nginx so it picks up your changes, with a command that
|
works. Restart nginx so it picks up your changes, with a command that
|
||||||
resembles one of the following (as the root user:) ::
|
resembles one of the following (as the root user)::
|
||||||
|
|
||||||
sudo /etc/init.d/nginx restart
|
sudo /etc/init.d/nginx restart
|
||||||
sudo /etc/rc.d/nginx restart
|
sudo /etc/rc.d/nginx restart
|
||||||
|
|
||||||
Now start MediaGoblin. Use the following command sequence as an
|
Now start MediaGoblin. Use the following command sequence as an
|
||||||
example: ::
|
example::
|
||||||
|
|
||||||
cd /srv/mediagoblin.example.org/mediagoblin/
|
cd /srv/mediagoblin.example.org/mediagoblin/
|
||||||
./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
|
./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
|
||||||
@@ -229,26 +249,9 @@ example: ::
|
|||||||
Visit the site you've set up in your browser by visiting
|
Visit the site you've set up in your browser by visiting
|
||||||
<http://mediagobilin.example.org>. You should see MediaGoblin!
|
<http://mediagobilin.example.org>. You should see MediaGoblin!
|
||||||
|
|
||||||
Production MediaGoblin Deployments with Paste
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The instance configured with ``lazyserver`` is not ideal for a
|
|
||||||
production MediaGoblin deployment. Ideally, you should be able to use
|
|
||||||
a a control script (i.e. init script.) to launch and restart the
|
|
||||||
MediaGoblin process.
|
|
||||||
|
|
||||||
Use the following command as the basis for such a script: ::
|
|
||||||
|
|
||||||
CELERY_ALWAYS_EAGER=true \
|
|
||||||
/srv/mediagoblin.example.org/mediagoblin/bin/paster serve \
|
|
||||||
/srv/mediagoblin.example.org/mediagoblin/paste.ini \
|
|
||||||
--pid-file=/tmp/mediagoblin.pid \
|
|
||||||
--server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The above configuration places MediaGoblin in "always eager" mode
|
The configuration described above is sufficient for development and
|
||||||
with Celery. This is fine for development and smaller
|
smaller deployments. However, for larger production deployments
|
||||||
deployments. However, if you're getting into the really large
|
with larger processing requirements, see the
|
||||||
deployment category, consider reading the section of this manual on
|
":doc:`production-deployments`" documentation.
|
||||||
Celery.
|
|
||||||
|
|||||||
@@ -5,14 +5,14 @@ Foreword
|
|||||||
About the MediaGoblin Manual
|
About the MediaGoblin Manual
|
||||||
============================
|
============================
|
||||||
|
|
||||||
This is the user manual for MediaGoblin. It covers how to set up and
|
This is the site administrator manual for MediaGoblin. It covers how
|
||||||
configure MediaGoblin and the kind of information that someone running
|
to set up and configure MediaGoblin and the kind of information that
|
||||||
MediaGoblin would need to know.
|
someone running MediaGoblin would need to know.
|
||||||
|
|
||||||
We have other documentation at:
|
We have other documentation at:
|
||||||
|
|
||||||
* http://mediagoblin.org/join/ for general "join us" information
|
* http://mediagoblin.org/join/ for general "join us" information
|
||||||
* http://wiki.mediagoblin.org/ for our contributor-focused wiki
|
* http://wiki.mediagoblin.org/ for our contributor/developer-focused wiki
|
||||||
|
|
||||||
|
|
||||||
Improving the MediaGobiin Manual
|
Improving the MediaGobiin Manual
|
||||||
|
|||||||
@@ -14,7 +14,9 @@ Table of Contents:
|
|||||||
foreword
|
foreword
|
||||||
about
|
about
|
||||||
deploying
|
deploying
|
||||||
|
production-deployments
|
||||||
configuration
|
configuration
|
||||||
|
media-types
|
||||||
help
|
help
|
||||||
theming
|
theming
|
||||||
codebase
|
codebase
|
||||||
|
|||||||
34
docs/source/media-types.rst
Normal file
34
docs/source/media-types.rst
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
.. _media-types-chapter:
|
||||||
|
|
||||||
|
====================
|
||||||
|
Enabling Media Types
|
||||||
|
====================
|
||||||
|
|
||||||
|
In the future, there will be all sorts of media types you can enable,
|
||||||
|
but in the meanwhile there's only one additional media type: video.
|
||||||
|
|
||||||
|
First, you should probably read ":doc:`configuration`" to make sure
|
||||||
|
you know how to modify the mediagoblin config file.
|
||||||
|
|
||||||
|
Video
|
||||||
|
=====
|
||||||
|
|
||||||
|
To enable video, first install gstreamer and the python-gstreamer
|
||||||
|
bindings (as well as whatever gstremaer extensions you want,
|
||||||
|
good/bad/ugly). On Debianoid systems::
|
||||||
|
|
||||||
|
sudo apt-get install python-gst0.10
|
||||||
|
|
||||||
|
Next, modify (and possibly copy over from ``mediagoblin.ini``) your
|
||||||
|
``mediagoblin_local.ini``. Uncomment this line in the ``[mediagoblin]``
|
||||||
|
section::
|
||||||
|
|
||||||
|
media_types = mediagoblin.media_types.image, mediagoblin.media_types.video
|
||||||
|
|
||||||
|
Now you should be able to submit videos, and mediagoblin should
|
||||||
|
transcode them.
|
||||||
|
|
||||||
|
Note that you almost certainly want to separate Celery from the normal
|
||||||
|
paste process or your users will probably find that their connections
|
||||||
|
time out as the video transcodes. To set that up, check out the
|
||||||
|
":doc:`production-deployments`" section of this manual.
|
||||||
81
docs/source/production-deployments.rst
Normal file
81
docs/source/production-deployments.rst
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
=========================================
|
||||||
|
Considerations for Production Deployments
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
This document contains a number of suggestions for deploying
|
||||||
|
MediaGoblin in actual production environments. Consider
|
||||||
|
":doc:`deploying`" for a basic overview of how to deploy MediaGoblin.
|
||||||
|
|
||||||
|
Deploy with Paste
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The instance configured with ``./lazyserver.sh`` is not ideal for a
|
||||||
|
production MediaGoblin deployment. Ideally, you should be able to use
|
||||||
|
an "init" or "control" script to launch and restart the MediaGoblin
|
||||||
|
process.
|
||||||
|
|
||||||
|
Use the following command as the basis for such a script: ::
|
||||||
|
|
||||||
|
CELERY_ALWAYS_EAGER=true \
|
||||||
|
/srv/mediagoblin.example.org/mediagoblin/bin/paster serve \
|
||||||
|
/srv/mediagoblin.example.org/mediagoblin/paste.ini \
|
||||||
|
--pid-file=/var/run/mediagoblin.pid \
|
||||||
|
--server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
|
||||||
|
|
||||||
|
The above configuration places MediaGoblin in "always eager" mode
|
||||||
|
with Celery, this means that submissions of content will be processed
|
||||||
|
synchronously, and the user will advance to the next page only after
|
||||||
|
processing is complete. If we take Celery out of "always eager mode,"
|
||||||
|
the user will be able to immediately return to the MediaGoblin site
|
||||||
|
while processing is ongoing. In these cases, use the following command
|
||||||
|
as the basis for your script: ::
|
||||||
|
|
||||||
|
CELERY_ALWAYS_EAGER=false \
|
||||||
|
/srv/mediagoblin.example.org/mediagoblin/bin/paster serve \
|
||||||
|
/srv/mediagoblin.example.org/mediagoblin/paste.ini \
|
||||||
|
--pid-file=/var/run/mediagoblin.pid \
|
||||||
|
--server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
|
||||||
|
|
||||||
|
Separate Celery
|
||||||
|
---------------
|
||||||
|
|
||||||
|
While the ``./lazyserer.sh`` configuration provides an efficient way to
|
||||||
|
start using a MediaGoblin instance, it is not suitable for production
|
||||||
|
deployments for several reasons:
|
||||||
|
|
||||||
|
In nearly every scenario, work on the Celery queue will need to
|
||||||
|
balance with the demands of other processes, and cannot proceed
|
||||||
|
synchronously. This is a particularly relevant problem if you use
|
||||||
|
MediaGoblin to host video content. Processing with Celery ought to be
|
||||||
|
operationally separate from the MediaGoblin application itself, this
|
||||||
|
simplifies management and support better workload distribution.
|
||||||
|
|
||||||
|
Basically, if you're doing anything beyond a trivial workload, such as
|
||||||
|
image hosting for a small set of users, or have limited media types
|
||||||
|
such as "ASCII art" or icon sharing, you will need to run ``celeryd``
|
||||||
|
as a separate process.
|
||||||
|
|
||||||
|
Build an :ref:`init script <init-script>` around the following
|
||||||
|
command::
|
||||||
|
|
||||||
|
CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd
|
||||||
|
|
||||||
|
Modify your existing MediaGoblin and application init scripts, if
|
||||||
|
necessary, to prevent them from starting their own ``celeryd``
|
||||||
|
processes.
|
||||||
|
|
||||||
|
.. _init-script:
|
||||||
|
|
||||||
|
Use an Init Script
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Look in your system's ``/etc/init.d/`` or ``/etc/rc.d/`` directory for
|
||||||
|
examples of how to build scripts that will start, stop, and restart
|
||||||
|
MediaGoblin and Celery. These scripts will vary by
|
||||||
|
distribution/operating system. In the future, MediaGoblin will provide
|
||||||
|
example scripts as examples.
|
||||||
|
|
||||||
|
.. TODO insert init script here
|
||||||
|
.. TODO are additional concerns ?
|
||||||
|
.. Other Concerns
|
||||||
|
.. --------------
|
||||||
29
docs/source/themes/mg/layout.html
Normal file
29
docs/source/themes/mg/layout.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{#
|
||||||
|
default/layout.html
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Sphinx layout template for the default theme.
|
||||||
|
|
||||||
|
:copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
|
||||||
|
:license: BSD, see LICENSE for details.
|
||||||
|
#}
|
||||||
|
{% extends "basic/layout.html" %}
|
||||||
|
|
||||||
|
{% if theme_collapsiblesidebar|tobool %}
|
||||||
|
{% set script_files = script_files + ['_static/sidebar.js'] %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{%- block footer %}
|
||||||
|
<div class="footer">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
MediaGoblin documentation released into the public domain via <a href="http://creativecommons.org/publicdomain/zero/1.0/">CC0</a>.
|
||||||
|
|
||||||
|
{%- if last_updated %}
|
||||||
|
{% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
{% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{%- endblock %}
|
||||||
BIN
docs/source/themes/mg/static/fonts/Lato-Bold.ttf
Normal file
BIN
docs/source/themes/mg/static/fonts/Lato-Bold.ttf
Normal file
Binary file not shown.
BIN
docs/source/themes/mg/static/fonts/Lato-BoldItalic.ttf
Normal file
BIN
docs/source/themes/mg/static/fonts/Lato-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
docs/source/themes/mg/static/fonts/Lato-Italic.ttf
Normal file
BIN
docs/source/themes/mg/static/fonts/Lato-Italic.ttf
Normal file
Binary file not shown.
BIN
docs/source/themes/mg/static/fonts/Lato-Regular.ttf
Normal file
BIN
docs/source/themes/mg/static/fonts/Lato-Regular.ttf
Normal file
Binary file not shown.
97
docs/source/themes/mg/static/fonts/OFL_1.1.txt
Normal file
97
docs/source/themes/mg/static/fonts/OFL_1.1.txt
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
|
||||||
|
with Reserved Font Name <Reserved Font Name>.
|
||||||
|
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
|
||||||
|
with Reserved Font Name <additional Reserved Font Name>.
|
||||||
|
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
docs/source/themes/mg/static/logo_docs.png
Normal file
BIN
docs/source/themes/mg/static/logo_docs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
161
docs/source/themes/mg/static/mg.css
Normal file
161
docs/source/themes/mg/static/mg.css
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
MediaGoblin theme - MediaGoblin-style Sphinx documentation theme
|
||||||
|
|
||||||
|
Written in 2012 by Jef van Schendel <mail@jefvanschendel.nl>
|
||||||
|
|
||||||
|
To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
|
||||||
|
|
||||||
|
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
@import url("basic.css");
|
||||||
|
|
||||||
|
/* text fonts and styles */
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
src: local('Lato Bold'), local('Lato-Bold'), url('fonts/Lato-Bold.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 400;
|
||||||
|
src: local('Lato Italic'), local('Lato-Italic'), url('fonts/Lato-Italic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 700;
|
||||||
|
src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('fonts/Lato-BoldItalic.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Lato';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
src: local('Lato Regular'), local('Lato-Regular'), url('fonts/Lato-Regular.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font: 16px 'Lato',Helvetica,Arial,sans-serif;
|
||||||
|
background-color: #FCFCFC;
|
||||||
|
color: #3C3C3C;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
border-bottom: 1px solid #CCCCCC;
|
||||||
|
background: none;
|
||||||
|
color: black;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 0.17em;
|
||||||
|
padding-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 1.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.375em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3, h4, h5, h6 {
|
||||||
|
font-size: 1.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0.4em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #499776;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: #2A5744;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:active {
|
||||||
|
color: #65D1A3;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.topic, pre {
|
||||||
|
background-color: #F1F1F1;
|
||||||
|
border: 1px dashed #ccc;
|
||||||
|
color: black;
|
||||||
|
line-height: 1.1em;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
code, tt {
|
||||||
|
font: 14px monospace,"Courier New";
|
||||||
|
background-color: #FFFFDD;
|
||||||
|
border: thin solid #bbb;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
font: 14px monospace,"Courier New";
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related a, div.related a:visited, div.related a:active {
|
||||||
|
color: #86D4B1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* layout */
|
||||||
|
|
||||||
|
div.documentwrapper {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.bodywrapper {
|
||||||
|
margin: 0 0 0 270px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.body {
|
||||||
|
padding: 0 20px 30px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
width: 100%;
|
||||||
|
padding: 9px 0 9px 0;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar {
|
||||||
|
width: 240px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebarwrapper {
|
||||||
|
padding: 10px 5px 0 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.sphinxsidebar ul {
|
||||||
|
margin: 10px 10px 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related {
|
||||||
|
line-height: 30px;
|
||||||
|
font-size: 90%;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #161616;
|
||||||
|
color: #C3C3C3;
|
||||||
|
}
|
||||||
|
|
||||||
|
p.logo {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
5
docs/source/themes/mg/theme.conf
Normal file
5
docs/source/themes/mg/theme.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[theme]
|
||||||
|
inherit = basic
|
||||||
|
stylesheet = mg.css
|
||||||
|
pygments_style = sphinx
|
||||||
|
|
||||||
@@ -1,447 +0,0 @@
|
|||||||
/*
|
|
||||||
960 Grid System ~ Core CSS.
|
|
||||||
Learn more ~ http://960.gs/
|
|
||||||
|
|
||||||
Licensed under GPL and MIT.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
Forces backgrounds to span full width,
|
|
||||||
even if there is horizontal scrolling.
|
|
||||||
Increase this if your layout is wider.
|
|
||||||
|
|
||||||
Note: IE6 works fine without this fix.
|
|
||||||
*/
|
|
||||||
|
|
||||||
body {
|
|
||||||
min-width: 960px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Container
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
width: 960px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grid >> Global
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.grid_1,
|
|
||||||
.grid_2,
|
|
||||||
.grid_3,
|
|
||||||
.grid_4,
|
|
||||||
.grid_5,
|
|
||||||
.grid_6,
|
|
||||||
.grid_7,
|
|
||||||
.grid_8,
|
|
||||||
.grid_9,
|
|
||||||
.grid_10,
|
|
||||||
.grid_11,
|
|
||||||
.grid_12,
|
|
||||||
.grid_13,
|
|
||||||
.grid_14,
|
|
||||||
.grid_15,
|
|
||||||
.grid_16 {
|
|
||||||
display: inline;
|
|
||||||
float: left;
|
|
||||||
position: relative;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.push_1, .pull_1,
|
|
||||||
.push_2, .pull_2,
|
|
||||||
.push_3, .pull_3,
|
|
||||||
.push_4, .pull_4,
|
|
||||||
.push_5, .pull_5,
|
|
||||||
.push_6, .pull_6,
|
|
||||||
.push_7, .pull_7,
|
|
||||||
.push_8, .pull_8,
|
|
||||||
.push_9, .pull_9,
|
|
||||||
.push_10, .pull_10,
|
|
||||||
.push_11, .pull_11,
|
|
||||||
.push_12, .pull_12,
|
|
||||||
.push_13, .pull_13,
|
|
||||||
.push_14, .pull_14,
|
|
||||||
.push_15, .pull_15,
|
|
||||||
.push_16, .pull_16 {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grid >> Children (Alpha ~ First, Omega ~ Last)
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.alpha {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.omega {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Grid >> 16 Columns
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 .grid_1 {
|
|
||||||
width: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_2 {
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_3 {
|
|
||||||
width: 160px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_4 {
|
|
||||||
width: 220px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_5 {
|
|
||||||
width: 280px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_6 {
|
|
||||||
width: 340px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_7 {
|
|
||||||
width: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_8 {
|
|
||||||
width: 460px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_9 {
|
|
||||||
width: 520px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_10 {
|
|
||||||
width: 580px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_11 {
|
|
||||||
width: 640px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_12 {
|
|
||||||
width: 700px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_13 {
|
|
||||||
width: 760px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_14 {
|
|
||||||
width: 820px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_15 {
|
|
||||||
width: 880px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .grid_16 {
|
|
||||||
width: 940px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Prefix Extra Space >> 16 Columns
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 .prefix_1 {
|
|
||||||
padding-left: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_2 {
|
|
||||||
padding-left: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_3 {
|
|
||||||
padding-left: 180px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_4 {
|
|
||||||
padding-left: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_5 {
|
|
||||||
padding-left: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_6 {
|
|
||||||
padding-left: 360px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_7 {
|
|
||||||
padding-left: 420px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_8 {
|
|
||||||
padding-left: 480px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_9 {
|
|
||||||
padding-left: 540px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_10 {
|
|
||||||
padding-left: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_11 {
|
|
||||||
padding-left: 660px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_12 {
|
|
||||||
padding-left: 720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_13 {
|
|
||||||
padding-left: 780px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_14 {
|
|
||||||
padding-left: 840px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .prefix_15 {
|
|
||||||
padding-left: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Suffix Extra Space >> 16 Columns
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 .suffix_1 {
|
|
||||||
padding-right: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_2 {
|
|
||||||
padding-right: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_3 {
|
|
||||||
padding-right: 180px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_4 {
|
|
||||||
padding-right: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_5 {
|
|
||||||
padding-right: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_6 {
|
|
||||||
padding-right: 360px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_7 {
|
|
||||||
padding-right: 420px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_8 {
|
|
||||||
padding-right: 480px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_9 {
|
|
||||||
padding-right: 540px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_10 {
|
|
||||||
padding-right: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_11 {
|
|
||||||
padding-right: 660px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_12 {
|
|
||||||
padding-right: 720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_13 {
|
|
||||||
padding-right: 780px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_14 {
|
|
||||||
padding-right: 840px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .suffix_15 {
|
|
||||||
padding-right: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Push Space >> 16 Columns
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 .push_1 {
|
|
||||||
left: 60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_2 {
|
|
||||||
left: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_3 {
|
|
||||||
left: 180px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_4 {
|
|
||||||
left: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_5 {
|
|
||||||
left: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_6 {
|
|
||||||
left: 360px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_7 {
|
|
||||||
left: 420px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_8 {
|
|
||||||
left: 480px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_9 {
|
|
||||||
left: 540px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_10 {
|
|
||||||
left: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_11 {
|
|
||||||
left: 660px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_12 {
|
|
||||||
left: 720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_13 {
|
|
||||||
left: 780px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_14 {
|
|
||||||
left: 840px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .push_15 {
|
|
||||||
left: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Pull Space >> 16 Columns
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
.container_16 .pull_1 {
|
|
||||||
left: -60px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_2 {
|
|
||||||
left: -120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_3 {
|
|
||||||
left: -180px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_4 {
|
|
||||||
left: -240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_5 {
|
|
||||||
left: -300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_6 {
|
|
||||||
left: -360px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_7 {
|
|
||||||
left: -420px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_8 {
|
|
||||||
left: -480px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_9 {
|
|
||||||
left: -540px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_10 {
|
|
||||||
left: -600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_11 {
|
|
||||||
left: -660px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_12 {
|
|
||||||
left: -720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_13 {
|
|
||||||
left: -780px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_14 {
|
|
||||||
left: -840px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container_16 .pull_15 {
|
|
||||||
left: -900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* `Clear Floated Elements
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/* http://sonspring.com/journal/clearing-floats */
|
|
||||||
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
visibility: hidden;
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */
|
|
||||||
|
|
||||||
.clearfix:before,
|
|
||||||
.clearfix:after,
|
|
||||||
.container_16:before,
|
|
||||||
.container_16:after {
|
|
||||||
content: '.';
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
visibility: hidden;
|
|
||||||
font-size: 0;
|
|
||||||
line-height: 0;
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clearfix:after,
|
|
||||||
.container_16:after {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
The following zoom:1 rule is specifically for IE6 + IE7.
|
|
||||||
Move to separate stylesheet if invalid CSS is a problem.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.clearfix,
|
|
||||||
.container_16 {
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
===============
|
|
||||||
960 GRID SYSTEM
|
|
||||||
===============
|
|
||||||
|
|
||||||
Created by Nathan Smith. See the official site for more info: http://960.gs/
|
|
||||||
|
|
||||||
============================================================================
|
|
||||||
|
|
||||||
To install the Adobe Fireworks extension, simply double-click the *.mxp file
|
|
||||||
included in the /fireworks_extension directory. If you are running Windows 7
|
|
||||||
you will need admin permissions in order to install this extension properly.
|
|
||||||
|
|
||||||
============================================================================
|
|
||||||
|
|
||||||
Thank you for downloading the 960 Grid System. I hope it helps to streamline
|
|
||||||
web development workflow. Enclosed in the bundle are printable sketch sheets
|
|
||||||
and template files for Adobe Fireworks and Photoshop, OmniGraffle and Visio.
|
|
||||||
|
|
||||||
Also included is a lightweight CSS file, which contains the grid dimensions.
|
|
||||||
To use this file, simply include the 960.css in the <head> of the HTML page.
|
|
||||||
You may also use the reset.css and text.css files, or opt to leave them out.
|
|
||||||
Here is an example of the XHTML code necessary to incorporate the CSS files:
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" media="all" href="css/text.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" media="all" href="css/960.css" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
It is worth noting that these styles do not automatically make up a finished
|
|
||||||
site design. They are simply a starting point, ideally for rapid prototyping
|
|
||||||
or as a basis for creating your own designs. You should not feel constrained
|
|
||||||
by the way I have built the initial code. If you disagree with how something
|
|
||||||
has been done, feel free to revise it for the needs of your particular site.
|
|
||||||
|
|
||||||
The files in the 960 Grid System are free of charge, licensed under MIT/GPL.
|
|
||||||
|
|
||||||
============================================================================
|
|
||||||
|
|
||||||
Note that if you are building a site in a language which reads from right to
|
|
||||||
left, use the CSS files that end in "_rtl.css" instead. Denote the language:
|
|
||||||
|
|
||||||
<html lang="..." dir="rtl">
|
|
||||||
|
|
||||||
Be sure to replace "..." with the appropriate two-letter abbreviation of the
|
|
||||||
language you are using. Example: lang="he" for Hebrew, lang="ar" for Arabic.
|
|
||||||
|
|
||||||
============================================================================
|
|
||||||
|
|
||||||
GPL license:
|
|
||||||
http://www.gnu.org/licenses/gpl.html
|
|
||||||
|
|
||||||
MIT license:
|
|
||||||
http://www.opensource.org/licenses/mit-license.php
|
|
||||||
@@ -1,202 +0,0 @@
|
|||||||
/* `XHTML, HTML4, HTML5 Reset
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
a,
|
|
||||||
abbr,
|
|
||||||
acronym,
|
|
||||||
address,
|
|
||||||
applet,
|
|
||||||
article,
|
|
||||||
aside,
|
|
||||||
audio,
|
|
||||||
b,
|
|
||||||
big,
|
|
||||||
blockquote,
|
|
||||||
body,
|
|
||||||
canvas,
|
|
||||||
caption,
|
|
||||||
center,
|
|
||||||
cite,
|
|
||||||
code,
|
|
||||||
dd,
|
|
||||||
del,
|
|
||||||
details,
|
|
||||||
dfn,
|
|
||||||
dialog,
|
|
||||||
div,
|
|
||||||
dl,
|
|
||||||
dt,
|
|
||||||
em,
|
|
||||||
embed,
|
|
||||||
fieldset,
|
|
||||||
figcaption,
|
|
||||||
figure,
|
|
||||||
font,
|
|
||||||
footer,
|
|
||||||
form,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6,
|
|
||||||
header,
|
|
||||||
hgroup,
|
|
||||||
hr,
|
|
||||||
html,
|
|
||||||
i,
|
|
||||||
iframe,
|
|
||||||
img,
|
|
||||||
ins,
|
|
||||||
kbd,
|
|
||||||
label,
|
|
||||||
legend,
|
|
||||||
li,
|
|
||||||
mark,
|
|
||||||
menu,
|
|
||||||
meter,
|
|
||||||
nav,
|
|
||||||
object,
|
|
||||||
ol,
|
|
||||||
output,
|
|
||||||
p,
|
|
||||||
pre,
|
|
||||||
progress,
|
|
||||||
q,
|
|
||||||
rp,
|
|
||||||
rt,
|
|
||||||
ruby,
|
|
||||||
s,
|
|
||||||
samp,
|
|
||||||
section,
|
|
||||||
small,
|
|
||||||
span,
|
|
||||||
strike,
|
|
||||||
strong,
|
|
||||||
sub,
|
|
||||||
summary,
|
|
||||||
sup,
|
|
||||||
table,
|
|
||||||
tbody,
|
|
||||||
td,
|
|
||||||
tfoot,
|
|
||||||
th,
|
|
||||||
thead,
|
|
||||||
time,
|
|
||||||
tr,
|
|
||||||
tt,
|
|
||||||
u,
|
|
||||||
ul,
|
|
||||||
var,
|
|
||||||
video,
|
|
||||||
xmp {
|
|
||||||
border: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-size: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
article,
|
|
||||||
aside,
|
|
||||||
details,
|
|
||||||
figcaption,
|
|
||||||
figure,
|
|
||||||
footer,
|
|
||||||
header,
|
|
||||||
hgroup,
|
|
||||||
menu,
|
|
||||||
nav,
|
|
||||||
section {
|
|
||||||
/*
|
|
||||||
Override the default (display: inline) for
|
|
||||||
browsers that do not recognize HTML5 tags.
|
|
||||||
|
|
||||||
IE8 (and lower) requires a shiv:
|
|
||||||
http://ejohn.org/blog/html5-shiv
|
|
||||||
*/
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
b,
|
|
||||||
strong {
|
|
||||||
/*
|
|
||||||
Makes browsers agree.
|
|
||||||
IE + Opera = font-weight: bold.
|
|
||||||
Gecko + WebKit = font-weight: bolder.
|
|
||||||
*/
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
color: transparent;
|
|
||||||
font-size: 0;
|
|
||||||
vertical-align: middle;
|
|
||||||
/*
|
|
||||||
For IE.
|
|
||||||
http://css-tricks.com/ie-fix-bicubic-scaling-for-images
|
|
||||||
*/
|
|
||||||
-ms-interpolation-mode: bicubic;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
/*
|
|
||||||
For IE6 + IE7.
|
|
||||||
*/
|
|
||||||
display: list-item;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
border-spacing: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
th,
|
|
||||||
td,
|
|
||||||
caption {
|
|
||||||
font-weight: normal;
|
|
||||||
vertical-align: top;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
q {
|
|
||||||
quotes: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
q:before,
|
|
||||||
q:after {
|
|
||||||
content: '';
|
|
||||||
content: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub,
|
|
||||||
sup,
|
|
||||||
small {
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub,
|
|
||||||
sup {
|
|
||||||
line-height: 0;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub {
|
|
||||||
bottom: -0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
sup {
|
|
||||||
top: -0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
svg {
|
|
||||||
/*
|
|
||||||
For IE9.
|
|
||||||
*/
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
/*
|
|
||||||
960 Grid System ~ Text CSS.
|
|
||||||
Learn more ~ http://960.gs/
|
|
||||||
|
|
||||||
Licensed under GPL and MIT.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* `Basic HTML
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
body {
|
|
||||||
font: 13px/1.5 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre,
|
|
||||||
code {
|
|
||||||
font-family: 'DejaVu Sans Mono', Monaco, Consolas, monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
border: 0 #ccc solid;
|
|
||||||
border-top-width: 1px;
|
|
||||||
clear: both;
|
|
||||||
height: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* `Headings
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 23px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 21px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* `Spacing
|
|
||||||
----------------------------------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
ol {
|
|
||||||
list-style: decimal;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: disc;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p,
|
|
||||||
dl,
|
|
||||||
hr,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6,
|
|
||||||
ol,
|
|
||||||
ul,
|
|
||||||
pre,
|
|
||||||
table,
|
|
||||||
address,
|
|
||||||
fieldset,
|
|
||||||
figure {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
3
extlib/html5shiv/html5shiv.js
vendored
Normal file
3
extlib/html5shiv/html5shiv.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
// HTML5 Shiv v3 | @jon_neal @afarkas @rem | MIT/GPL2 Licensed
|
||||||
|
// Uncompressed source: https://github.com/aFarkas/html5shiv
|
||||||
|
(function(a,b){var c=function(a){return a.innerHTML="<x-element></x-element>",a.childNodes.length===1}(b.createElement("a")),d=function(a,b,c){return b.appendChild(a),(c=(c?c(a):a.currentStyle).display)&&b.removeChild(a)&&c==="block"}(b.createElement("nav"),b.documentElement,a.getComputedStyle),e={elements:"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "),shivDocument:function(a){a=a||b;if(a.documentShived)return;a.documentShived=!0;var f=a.createElement,g=a.createDocumentFragment,h=a.getElementsByTagName("head")[0],i=function(a){f(a)};c||(e.elements.join(" ").replace(/\w+/g,i),a.createElement=function(a){var b=f(a);return b.canHaveChildren&&e.shivDocument(b.document),b},a.createDocumentFragment=function(){return e.shivDocument(g())});if(!d&&h){var j=f("div");j.innerHTML=["x<style>","article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}","audio{display:none}","canvas,video{display:inline-block;*display:inline;*zoom:1}","[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}","mark{background:#FF0;color:#000}","</style>"].join(""),h.insertBefore(j.lastChild,h.firstChild)}return a}};e.shivDocument(b),a.html5=e})(this,document)
|
||||||
4
extlib/inconsolata/INFO.txt
Normal file
4
extlib/inconsolata/INFO.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Inconsolata
|
||||||
|
-----------
|
||||||
|
|
||||||
|
This font is found at http://www.levien.com/type/myfonts/inconsolata.html
|
||||||
BIN
extlib/inconsolata/Inconsolata.otf
Normal file
BIN
extlib/inconsolata/Inconsolata.otf
Normal file
Binary file not shown.
1088
extlib/inconsolata/Inconsolata.pfa
Normal file
1088
extlib/inconsolata/Inconsolata.pfa
Normal file
File diff suppressed because it is too large
Load Diff
5730
extlib/inconsolata/Inconsolata.sfd
Normal file
5730
extlib/inconsolata/Inconsolata.sfd
Normal file
File diff suppressed because it is too large
Load Diff
97
extlib/inconsolata/OFL_1.1.txt
Normal file
97
extlib/inconsolata/OFL_1.1.txt
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
|
||||||
|
with Reserved Font Name <Reserved Font Name>.
|
||||||
|
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
|
||||||
|
with Reserved Font Name <additional Reserved Font Name>.
|
||||||
|
Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
extlib/inconsolata/textest.pdf
Normal file
BIN
extlib/inconsolata/textest.pdf
Normal file
Binary file not shown.
20
extlib/jquery/MIT.txt
Normal file
20
extlib/jquery/MIT.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Copyright (c) <year> <copyright holders>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
4
extlib/jquery/jquery.js
vendored
Normal file
4
extlib/jquery/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
49
extlib/reset/reset.css
Normal file
49
extlib/reset/reset.css
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
/* http://meyerweb.com/eric/tools/css/reset/
|
||||||
|
v2.0 | 20110126
|
||||||
|
License: none (public domain)
|
||||||
|
*/
|
||||||
|
|
||||||
|
html, body, div, span, applet, object, iframe,
|
||||||
|
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||||
|
a, abbr, acronym, address, big, cite, code,
|
||||||
|
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||||
|
article, aside, canvas, details, embed,
|
||||||
|
figure, figcaption, footer, header, hgroup,
|
||||||
|
menu, nav, output, ruby, section, summary,
|
||||||
|
time, mark, audio, video {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article, aside, details, figcaption, figure,
|
||||||
|
footer, header, hgroup, menu, nav, section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
ol, ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
blockquote, q {
|
||||||
|
quotes: none;
|
||||||
|
}
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -16,13 +16,17 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#
|
||||||
|
# This runs Mediagoblin using Paste with Celery set to always eager mode.
|
||||||
|
#
|
||||||
|
|
||||||
if [ "$1" = "-h" ]
|
if [ "$1" = "-h" ]
|
||||||
then
|
then
|
||||||
echo "$0 [-h] [-c paste.ini] [ARGS_to_paster ...]"
|
echo "$0 [-h] [-c paste.ini] [ARGS_to_paster ...]"
|
||||||
echo ""
|
echo ""
|
||||||
echo " For example:"
|
echo " For example:"
|
||||||
echo " $0 -c fcgi.ini port_number=23371"
|
echo " $0 -c fcgi.ini port_number=23371"
|
||||||
echo " or: $0 --server-name=fcgi"
|
echo " or: $0 --server-name=fcgi --log-file=paste.log"
|
||||||
echo ""
|
echo ""
|
||||||
echo " The configfile defaults to paste_local.ini,"
|
echo " The configfile defaults to paste_local.ini,"
|
||||||
echo " if that is readable, otherwise paste.ini."
|
echo " if that is readable, otherwise paste.ini."
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
# If you want to make changes to this file, first copy it to
|
||||||
|
# mediagoblin_local.ini, then make the changes there.
|
||||||
|
|
||||||
[mediagoblin]
|
[mediagoblin]
|
||||||
direct_remote_path = /mgoblin_static/
|
direct_remote_path = /mgoblin_static/
|
||||||
email_sender_address = "notice@mediagoblin.example.org"
|
email_sender_address = "notice@mediagoblin.example.org"
|
||||||
@@ -8,6 +11,9 @@ email_debug_mode = true
|
|||||||
# Set to false to disable registrations
|
# Set to false to disable registrations
|
||||||
allow_registration = true
|
allow_registration = true
|
||||||
|
|
||||||
|
## Uncomment this to turn on video or enable other media types
|
||||||
|
# media_types = mediagoblin.media_types.image, mediagoblin.media_types.video
|
||||||
|
|
||||||
## Uncomment this to put some user-overriding templates here
|
## Uncomment this to put some user-overriding templates here
|
||||||
#local_templates = %(here)s/user_dev/templates/
|
#local_templates = %(here)s/user_dev/templates/
|
||||||
|
|
||||||
|
|||||||
@@ -14,4 +14,13 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
__version__ = "0.0.5"
|
# valid version formats:
|
||||||
|
# * x.y - final release
|
||||||
|
# * x.ya1 - alpha 1
|
||||||
|
# * x.yb1 - beta 1
|
||||||
|
# * x.yrc1 - release candidate 1
|
||||||
|
# * x.y.dev - dev
|
||||||
|
|
||||||
|
# see http://www.python.org/dev/peps/pep-0386/
|
||||||
|
|
||||||
|
__version__ = "0.3.0.dev"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import urllib
|
|||||||
import routes
|
import routes
|
||||||
from webob import Request, exc
|
from webob import Request, exc
|
||||||
|
|
||||||
from mediagoblin import routing, middleware
|
from mediagoblin import routing, meddleware
|
||||||
from mediagoblin.tools import common, translate, template
|
from mediagoblin.tools import common, translate, template
|
||||||
from mediagoblin.tools.response import render_404
|
from mediagoblin.tools.response import render_404
|
||||||
from mediagoblin.tools import request as mg_request
|
from mediagoblin.tools import request as mg_request
|
||||||
@@ -63,7 +63,7 @@ class MediaGoblinApp(object):
|
|||||||
|
|
||||||
# Get the template environment
|
# Get the template environment
|
||||||
self.template_loader = get_jinja_loader(
|
self.template_loader = get_jinja_loader(
|
||||||
app_config.get('user_template_path'))
|
app_config.get('local_templates'))
|
||||||
|
|
||||||
# Set up storage systems
|
# Set up storage systems
|
||||||
self.public_store, self.queue_store = setup_storage()
|
self.public_store, self.queue_store = setup_storage()
|
||||||
@@ -100,20 +100,13 @@ class MediaGoblinApp(object):
|
|||||||
# matters in always eager mode :)
|
# matters in always eager mode :)
|
||||||
setup_workbench()
|
setup_workbench()
|
||||||
|
|
||||||
# instantiate application middleware
|
# instantiate application meddleware
|
||||||
self.middleware = [common.import_component(m)(self)
|
self.meddleware = [common.import_component(m)(self)
|
||||||
for m in middleware.ENABLED_MIDDLEWARE]
|
for m in meddleware.ENABLED_MEDDLEWARE]
|
||||||
|
|
||||||
|
|
||||||
def __call__(self, environ, start_response):
|
def __call__(self, environ, start_response):
|
||||||
request = Request(environ)
|
request = Request(environ)
|
||||||
|
|
||||||
# pass the request through our middleware classes
|
|
||||||
for m in self.middleware:
|
|
||||||
response = m.process_request(request)
|
|
||||||
if response is not None:
|
|
||||||
return response(environ, start_response)
|
|
||||||
|
|
||||||
## Routing / controller loading stuff
|
## Routing / controller loading stuff
|
||||||
path_info = request.path_info
|
path_info = request.path_info
|
||||||
route_match = self.routing.match(path_info)
|
route_match = self.routing.match(path_info)
|
||||||
@@ -129,6 +122,11 @@ class MediaGoblinApp(object):
|
|||||||
# The other option would be:
|
# The other option would be:
|
||||||
# request.full_path = environ["SCRIPT_URL"]
|
# request.full_path = environ["SCRIPT_URL"]
|
||||||
|
|
||||||
|
# Fix up environ for urlgen
|
||||||
|
# See bug: https://bitbucket.org/bbangert/routes/issue/55/cache_hostinfo-breaks-on-https-off
|
||||||
|
if environ.get('HTTPS', '').lower() == 'off':
|
||||||
|
environ.pop('HTTPS')
|
||||||
|
|
||||||
## Attach utilities to the request object
|
## Attach utilities to the request object
|
||||||
request.matchdict = route_match
|
request.matchdict = route_match
|
||||||
request.urlgen = routes.URLGenerator(self.routing, environ)
|
request.urlgen = routes.URLGenerator(self.routing, environ)
|
||||||
@@ -165,13 +163,20 @@ class MediaGoblinApp(object):
|
|||||||
return render_404(request)(environ, start_response)
|
return render_404(request)(environ, start_response)
|
||||||
|
|
||||||
controller = common.import_component(route_match['controller'])
|
controller = common.import_component(route_match['controller'])
|
||||||
|
|
||||||
|
# pass the request through our meddleware classes
|
||||||
|
for m in self.meddleware:
|
||||||
|
response = m.process_request(request, controller)
|
||||||
|
if response is not None:
|
||||||
|
return response(environ, start_response)
|
||||||
|
|
||||||
request.start_response = start_response
|
request.start_response = start_response
|
||||||
|
|
||||||
# get the response from the controller
|
# get the response from the controller
|
||||||
response = controller(request)
|
response = controller(request)
|
||||||
|
|
||||||
# pass the response through the middleware
|
# pass the response through the meddleware
|
||||||
for m in self.middleware[::-1]:
|
for m in self.meddleware[::-1]:
|
||||||
m.process_response(request, response)
|
m.process_response(request, response)
|
||||||
|
|
||||||
return response(environ, start_response)
|
return response(environ, start_response)
|
||||||
|
|||||||
@@ -29,15 +29,7 @@ class RegistrationForm(wtforms.Form):
|
|||||||
password = wtforms.PasswordField(
|
password = wtforms.PasswordField(
|
||||||
_('Password'),
|
_('Password'),
|
||||||
[wtforms.validators.Required(),
|
[wtforms.validators.Required(),
|
||||||
wtforms.validators.Length(min=6, max=30),
|
wtforms.validators.Length(min=6, max=30)])
|
||||||
wtforms.validators.EqualTo(
|
|
||||||
'confirm_password',
|
|
||||||
_('Passwords must match.'))])
|
|
||||||
confirm_password = wtforms.PasswordField(
|
|
||||||
_('Confirm password'),
|
|
||||||
[wtforms.validators.Required()],
|
|
||||||
description=_(
|
|
||||||
u"Type it again here to make sure there are no spelling mistakes."))
|
|
||||||
email = wtforms.TextField(
|
email = wtforms.TextField(
|
||||||
_('Email address'),
|
_('Email address'),
|
||||||
[wtforms.validators.Required(),
|
[wtforms.validators.Required(),
|
||||||
@@ -61,7 +53,8 @@ class ForgotPassForm(wtforms.Form):
|
|||||||
|
|
||||||
def validate_username(form, field):
|
def validate_username(form, field):
|
||||||
if not (re.match(r'^\w+$', field.data) or
|
if not (re.match(r'^\w+$', field.data) or
|
||||||
re.match(r'^.+@[^.].*\.[a-z]{2,10}$',field.data, re.IGNORECASE)):
|
re.match(r'^.+@[^.].*\.[a-z]{2,10}$', field.data,
|
||||||
|
re.IGNORECASE)):
|
||||||
raise wtforms.ValidationError(u'Incorrect input')
|
raise wtforms.ValidationError(u'Incorrect input')
|
||||||
|
|
||||||
|
|
||||||
@@ -69,17 +62,10 @@ class ChangePassForm(wtforms.Form):
|
|||||||
password = wtforms.PasswordField(
|
password = wtforms.PasswordField(
|
||||||
'Password',
|
'Password',
|
||||||
[wtforms.validators.Required(),
|
[wtforms.validators.Required(),
|
||||||
wtforms.validators.Length(min=6, max=30),
|
wtforms.validators.Length(min=6, max=30)])
|
||||||
wtforms.validators.EqualTo(
|
|
||||||
'confirm_password',
|
|
||||||
'Passwords must match.')])
|
|
||||||
confirm_password = wtforms.PasswordField(
|
|
||||||
'Confirm password',
|
|
||||||
[wtforms.validators.Required()])
|
|
||||||
userid = wtforms.HiddenField(
|
userid = wtforms.HiddenField(
|
||||||
'',
|
'',
|
||||||
[wtforms.validators.Required()])
|
[wtforms.validators.Required()])
|
||||||
token = wtforms.HiddenField(
|
token = wtforms.HiddenField(
|
||||||
'',
|
'',
|
||||||
[wtforms.validators.Required()])
|
[wtforms.validators.Required()])
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ EMAIL_VERIFICATION_TEMPLATE = (
|
|||||||
u"http://{host}{uri}?"
|
u"http://{host}{uri}?"
|
||||||
u"userid={userid}&token={verification_key}")
|
u"userid={userid}&token={verification_key}")
|
||||||
|
|
||||||
|
|
||||||
def send_verification_email(user, request):
|
def send_verification_email(user, request):
|
||||||
"""
|
"""
|
||||||
Send the verification email to users to activate their accounts.
|
Send the verification email to users to activate their accounts.
|
||||||
@@ -104,17 +105,17 @@ def send_verification_email(user, request):
|
|||||||
"""
|
"""
|
||||||
rendered_email = render_template(
|
rendered_email = render_template(
|
||||||
request, 'mediagoblin/auth/verification_email.txt',
|
request, 'mediagoblin/auth/verification_email.txt',
|
||||||
{'username': user['username'],
|
{'username': user.username,
|
||||||
'verification_url': EMAIL_VERIFICATION_TEMPLATE.format(
|
'verification_url': EMAIL_VERIFICATION_TEMPLATE.format(
|
||||||
host=request.host,
|
host=request.host,
|
||||||
uri=request.urlgen('mediagoblin.auth.verify_email'),
|
uri=request.urlgen('mediagoblin.auth.verify_email'),
|
||||||
userid=unicode(user['_id']),
|
userid=unicode(user._id),
|
||||||
verification_key=user['verification_key'])})
|
verification_key=user.verification_key)})
|
||||||
|
|
||||||
# TODO: There is no error handling in place
|
# TODO: There is no error handling in place
|
||||||
send_email(
|
send_email(
|
||||||
mg_globals.app_config['email_sender_address'],
|
mg_globals.app_config['email_sender_address'],
|
||||||
[user['email']],
|
[user.email],
|
||||||
# TODO
|
# TODO
|
||||||
# Due to the distributed nature of GNU MediaGoblin, we should
|
# Due to the distributed nature of GNU MediaGoblin, we should
|
||||||
# find a way to send some additional information about the
|
# find a way to send some additional information about the
|
||||||
@@ -128,6 +129,7 @@ EMAIL_FP_VERIFICATION_TEMPLATE = (
|
|||||||
u"http://{host}{uri}?"
|
u"http://{host}{uri}?"
|
||||||
u"userid={userid}&token={fp_verification_key}")
|
u"userid={userid}&token={fp_verification_key}")
|
||||||
|
|
||||||
|
|
||||||
def send_fp_verification_email(user, request):
|
def send_fp_verification_email(user, request):
|
||||||
"""
|
"""
|
||||||
Send the verification email to users to change their password.
|
Send the verification email to users to change their password.
|
||||||
@@ -138,17 +140,16 @@ def send_fp_verification_email(user, request):
|
|||||||
"""
|
"""
|
||||||
rendered_email = render_template(
|
rendered_email = render_template(
|
||||||
request, 'mediagoblin/auth/fp_verification_email.txt',
|
request, 'mediagoblin/auth/fp_verification_email.txt',
|
||||||
{'username': user['username'],
|
{'username': user.username,
|
||||||
'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format(
|
'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format(
|
||||||
host=request.host,
|
host=request.host,
|
||||||
uri=request.urlgen('mediagoblin.auth.verify_forgot_password'),
|
uri=request.urlgen('mediagoblin.auth.verify_forgot_password'),
|
||||||
userid=unicode(user['_id']),
|
userid=unicode(user._id),
|
||||||
fp_verification_key=user['fp_verification_key'])})
|
fp_verification_key=user.fp_verification_key)})
|
||||||
|
|
||||||
# TODO: There is no error handling in place
|
# TODO: There is no error handling in place
|
||||||
send_email(
|
send_email(
|
||||||
mg_globals.app_config['email_sender_address'],
|
mg_globals.app_config['email_sender_address'],
|
||||||
[user['email']],
|
[user.email],
|
||||||
'GNU MediaGoblin - Change forgotten password!',
|
'GNU MediaGoblin - Change forgotten password!',
|
||||||
rendered_email)
|
rendered_email)
|
||||||
|
|
||||||
|
|||||||
@@ -33,13 +33,6 @@ auth_routes = [
|
|||||||
controller='mediagoblin.views:simple_template_render'),
|
controller='mediagoblin.views:simple_template_render'),
|
||||||
Route('mediagoblin.auth.forgot_password', '/forgot_password/',
|
Route('mediagoblin.auth.forgot_password', '/forgot_password/',
|
||||||
controller='mediagoblin.auth.views:forgot_password'),
|
controller='mediagoblin.auth.views:forgot_password'),
|
||||||
Route('mediagoblin.auth.verify_forgot_password', '/forgot_password/verify/',
|
Route('mediagoblin.auth.verify_forgot_password',
|
||||||
controller='mediagoblin.auth.views:verify_forgot_password'),
|
'/forgot_password/verify/',
|
||||||
Route('mediagoblin.auth.fp_changed_success',
|
controller='mediagoblin.auth.views:verify_forgot_password')]
|
||||||
'/forgot_password/changed_success/',
|
|
||||||
template='mediagoblin/auth/fp_changed_success.html',
|
|
||||||
controller='mediagoblin.views:simple_template_render'),
|
|
||||||
Route('mediagoblin.auth.fp_email_sent',
|
|
||||||
'/forgot_password/email_sent/',
|
|
||||||
template='mediagoblin/auth/fp_email_sent.html',
|
|
||||||
controller='mediagoblin.views:simple_template_render')]
|
|
||||||
|
|||||||
@@ -74,20 +74,21 @@ def register(request):
|
|||||||
extra_validation_passes = False
|
extra_validation_passes = False
|
||||||
if users_with_email:
|
if users_with_email:
|
||||||
register_form.email.errors.append(
|
register_form.email.errors.append(
|
||||||
_(u'Sorry, that email address has already been taken.'))
|
_(u'Sorry, a user with that email address already exists.'))
|
||||||
extra_validation_passes = False
|
extra_validation_passes = False
|
||||||
|
|
||||||
if extra_validation_passes:
|
if extra_validation_passes:
|
||||||
# Create the user
|
# Create the user
|
||||||
user = request.db.User()
|
user = request.db.User()
|
||||||
user['username'] = username
|
user.username = username
|
||||||
user['email'] = email
|
user.email = email
|
||||||
user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(
|
user.pw_hash = auth_lib.bcrypt_gen_password_hash(
|
||||||
request.POST['password'])
|
request.POST['password'])
|
||||||
|
user.verification_key = unicode(uuid.uuid4())
|
||||||
user.save(validate=True)
|
user.save(validate=True)
|
||||||
|
|
||||||
# log the user in
|
# log the user in
|
||||||
request.session['user_id'] = unicode(user['_id'])
|
request.session['user_id'] = unicode(user._id)
|
||||||
request.session.save()
|
request.session.save()
|
||||||
|
|
||||||
# send verification email
|
# send verification email
|
||||||
@@ -98,7 +99,7 @@ def register(request):
|
|||||||
# message waiting for them to verify their email
|
# message waiting for them to verify their email
|
||||||
return redirect(
|
return redirect(
|
||||||
request, 'mediagoblin.user_pages.user_home',
|
request, 'mediagoblin.user_pages.user_home',
|
||||||
user=user['username'])
|
user=user.username)
|
||||||
|
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
@@ -122,7 +123,7 @@ def login(request):
|
|||||||
|
|
||||||
if user and user.check_login(request.POST['password']):
|
if user and user.check_login(request.POST['password']):
|
||||||
# set up login in session
|
# set up login in session
|
||||||
request.session['user_id'] = unicode(user['_id'])
|
request.session['user_id'] = unicode(user._id)
|
||||||
request.session.save()
|
request.session.save()
|
||||||
|
|
||||||
if request.POST.get('next'):
|
if request.POST.get('next'):
|
||||||
@@ -160,16 +161,16 @@ def verify_email(request):
|
|||||||
you are lucky :)
|
you are lucky :)
|
||||||
"""
|
"""
|
||||||
# If we don't have userid and token parameters, we can't do anything; 404
|
# If we don't have userid and token parameters, we can't do anything; 404
|
||||||
if not request.GET.has_key('userid') or not request.GET.has_key('token'):
|
if not 'userid' in request.GET or not 'token' in request.GET:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
user = request.db.User.find_one(
|
user = request.db.User.find_one(
|
||||||
{'_id': ObjectId(unicode(request.GET['userid']))})
|
{'_id': ObjectId(unicode(request.GET['userid']))})
|
||||||
|
|
||||||
if user and user['verification_key'] == unicode(request.GET['token']):
|
if user and user.verification_key == unicode(request.GET['token']):
|
||||||
user[u'status'] = u'active'
|
user.status = u'active'
|
||||||
user[u'email_verified'] = True
|
user.email_verified = True
|
||||||
user[u'verification_key'] = None
|
user.verification_key = None
|
||||||
|
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
@@ -186,7 +187,7 @@ def verify_email(request):
|
|||||||
|
|
||||||
return redirect(
|
return redirect(
|
||||||
request, 'mediagoblin.user_pages.user_home',
|
request, 'mediagoblin.user_pages.user_home',
|
||||||
user=user['username'])
|
user=user.username)
|
||||||
|
|
||||||
|
|
||||||
def resend_activation(request):
|
def resend_activation(request):
|
||||||
@@ -195,7 +196,24 @@ def resend_activation(request):
|
|||||||
|
|
||||||
Resend the activation email.
|
Resend the activation email.
|
||||||
"""
|
"""
|
||||||
request.user[u'verification_key'] = unicode(uuid.uuid4())
|
|
||||||
|
if request.user is None:
|
||||||
|
messages.add_message(
|
||||||
|
request,
|
||||||
|
messages.ERROR,
|
||||||
|
_('You must be logged in so we know who to send the email to!'))
|
||||||
|
|
||||||
|
return redirect(request, 'mediagoblin.auth.login')
|
||||||
|
|
||||||
|
if request.user.email_verified:
|
||||||
|
messages.add_message(
|
||||||
|
request,
|
||||||
|
messages.ERROR,
|
||||||
|
_("You've already verified your email address!"))
|
||||||
|
|
||||||
|
return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username'])
|
||||||
|
|
||||||
|
request.user.verification_key = unicode(uuid.uuid4())
|
||||||
request.user.save()
|
request.user.save()
|
||||||
|
|
||||||
email_debug_message(request)
|
email_debug_message(request)
|
||||||
@@ -207,23 +225,19 @@ def resend_activation(request):
|
|||||||
_('Resent your verification email.'))
|
_('Resent your verification email.'))
|
||||||
return redirect(
|
return redirect(
|
||||||
request, 'mediagoblin.user_pages.user_home',
|
request, 'mediagoblin.user_pages.user_home',
|
||||||
user=request.user['username'])
|
user=request.user.username)
|
||||||
|
|
||||||
|
|
||||||
def forgot_password(request):
|
def forgot_password(request):
|
||||||
"""
|
"""
|
||||||
Forgot password view
|
Forgot password view
|
||||||
|
|
||||||
Sends an email whit an url to renew forgoten password
|
Sends an email with an url to renew forgotten password
|
||||||
"""
|
"""
|
||||||
fp_form = auth_forms.ForgotPassForm(request.POST)
|
fp_form = auth_forms.ForgotPassForm(request.POST)
|
||||||
|
|
||||||
if request.method == 'POST' and fp_form.validate():
|
if request.method == 'POST' and fp_form.validate():
|
||||||
|
|
||||||
# Here, so it doesn't depend on the actual mail being sent
|
|
||||||
# and thus doesn't reveal, wether mail was sent.
|
|
||||||
email_debug_message(request)
|
|
||||||
|
|
||||||
# '$or' not available till mongodb 1.5.3
|
# '$or' not available till mongodb 1.5.3
|
||||||
user = request.db.User.find_one(
|
user = request.db.User.find_one(
|
||||||
{'username': request.POST['username']})
|
{'username': request.POST['username']})
|
||||||
@@ -232,13 +246,21 @@ def forgot_password(request):
|
|||||||
{'email': request.POST['username']})
|
{'email': request.POST['username']})
|
||||||
|
|
||||||
if user:
|
if user:
|
||||||
if user['email_verified'] and user['status'] == 'active':
|
if user.email_verified and user.status == 'active':
|
||||||
user[u'fp_verification_key'] = unicode(uuid.uuid4())
|
user.fp_verification_key = unicode(uuid.uuid4())
|
||||||
user[u'fp_token_expire'] = datetime.datetime.now() + \
|
user.fp_token_expire = datetime.datetime.now() + \
|
||||||
datetime.timedelta(days=10)
|
datetime.timedelta(days=10)
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
send_fp_verification_email(user, request)
|
send_fp_verification_email(user, request)
|
||||||
|
|
||||||
|
messages.add_message(
|
||||||
|
request,
|
||||||
|
messages.INFO,
|
||||||
|
_("An email has been sent with instructions on how to "
|
||||||
|
"change your password."))
|
||||||
|
email_debug_message(request)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# special case... we can't send the email because the
|
# special case... we can't send the email because the
|
||||||
# username is inactive / hasn't verified their email
|
# username is inactive / hasn't verified their email
|
||||||
@@ -251,11 +273,14 @@ def forgot_password(request):
|
|||||||
|
|
||||||
return redirect(
|
return redirect(
|
||||||
request, 'mediagoblin.user_pages.user_home',
|
request, 'mediagoblin.user_pages.user_home',
|
||||||
user=user['username'])
|
user=user.username)
|
||||||
|
return redirect(request, 'mediagoblin.auth.login')
|
||||||
|
else:
|
||||||
# do not reveal whether or not there is a matching user, just move along
|
messages.add_message(
|
||||||
return redirect(request, 'mediagoblin.auth.fp_email_sent')
|
request,
|
||||||
|
messages.WARNING,
|
||||||
|
_("Couldn't find someone with that username or email."))
|
||||||
|
return redirect(request, 'mediagoblin.auth.forgot_password')
|
||||||
|
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
@@ -285,21 +310,25 @@ def verify_forgot_password(request):
|
|||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
# check if we have a real user and correct token
|
# check if we have a real user and correct token
|
||||||
if ((user and user['fp_verification_key'] and
|
if ((user and user.fp_verification_key and
|
||||||
user['fp_verification_key'] == unicode(formdata_token) and
|
user.fp_verification_key == unicode(formdata_token) and
|
||||||
datetime.datetime.now() < user['fp_token_expire']
|
datetime.datetime.now() < user.fp_token_expire
|
||||||
and user['email_verified'] and user['status'] == 'active')):
|
and user.email_verified and user.status == 'active')):
|
||||||
|
|
||||||
cp_form = auth_forms.ChangePassForm(formdata_vars)
|
cp_form = auth_forms.ChangePassForm(formdata_vars)
|
||||||
|
|
||||||
if request.method == 'POST' and cp_form.validate():
|
if request.method == 'POST' and cp_form.validate():
|
||||||
user[u'pw_hash'] = auth_lib.bcrypt_gen_password_hash(
|
user.pw_hash = auth_lib.bcrypt_gen_password_hash(
|
||||||
request.POST['password'])
|
request.POST['password'])
|
||||||
user[u'fp_verification_key'] = None
|
user.fp_verification_key = None
|
||||||
user[u'fp_token_expire'] = None
|
user.fp_token_expire = None
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
return redirect(request, 'mediagoblin.auth.fp_changed_success')
|
messages.add_message(
|
||||||
|
request,
|
||||||
|
messages.INFO,
|
||||||
|
_("You can now log in using your new password."))
|
||||||
|
return redirect(request, 'mediagoblin.auth.login')
|
||||||
else:
|
else:
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
@@ -328,6 +357,6 @@ def _process_for_token(request):
|
|||||||
formdata = {
|
formdata = {
|
||||||
'vars': formdata_vars,
|
'vars': formdata_vars,
|
||||||
'has_userid_and_token':
|
'has_userid_and_token':
|
||||||
formdata_vars.has_key('userid') and formdata_vars.has_key('token')}
|
'userid' in formdata_vars and 'token' in formdata_vars}
|
||||||
|
|
||||||
return formdata
|
return formdata
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
[mediagoblin]
|
[mediagoblin]
|
||||||
|
# HTML title of the pages
|
||||||
|
html_title = string(default="GNU MediaGoblin")
|
||||||
|
|
||||||
|
# Enabled media types
|
||||||
|
media_types = string_list(default=list("mediagoblin.media_types.image"))
|
||||||
|
|
||||||
# database stuff
|
# database stuff
|
||||||
db_host = string()
|
db_host = string()
|
||||||
db_name = string(default="mediagoblin")
|
db_name = string(default="mediagoblin")
|
||||||
db_port = integer()
|
db_port = integer()
|
||||||
|
|
||||||
|
|
||||||
# Where temporary files used in processing and etc are kept
|
# Where temporary files used in processing and etc are kept
|
||||||
workbench_path = string(default="%(here)s/user_dev/media/workbench")
|
workbench_path = string(default="%(here)s/user_dev/media/workbench")
|
||||||
|
|
||||||
|
|
||||||
# Where mediagoblin-builtin static assets are kept
|
# Where mediagoblin-builtin static assets are kept
|
||||||
direct_remote_path = string(default="/mgoblin_static/")
|
direct_remote_path = string(default="/mgoblin_static/")
|
||||||
|
|
||||||
@@ -24,9 +28,11 @@ email_smtp_pass = string(default=None)
|
|||||||
allow_registration = boolean(default=True)
|
allow_registration = boolean(default=True)
|
||||||
|
|
||||||
# tag parsing
|
# tag parsing
|
||||||
tags_delimiter = string(default=",")
|
|
||||||
tags_max_length = integer(default=50)
|
tags_max_length = integer(default=50)
|
||||||
|
|
||||||
|
# Whether comments are ascending or descending
|
||||||
|
comments_ascending = boolean(default=True)
|
||||||
|
|
||||||
# By default not set, but you might want something like:
|
# By default not set, but you might want something like:
|
||||||
# "%(here)s/user_dev/templates/"
|
# "%(here)s/user_dev/templates/"
|
||||||
local_templates = string()
|
local_templates = string()
|
||||||
@@ -44,6 +50,7 @@ allow_attachments = boolean(default=False)
|
|||||||
# Cookie stuff
|
# Cookie stuff
|
||||||
csrf_cookie_name = string(default='mediagoblin_csrftoken')
|
csrf_cookie_name = string(default='mediagoblin_csrftoken')
|
||||||
|
|
||||||
|
|
||||||
[storage:publicstore]
|
[storage:publicstore]
|
||||||
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
|
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
|
||||||
base_dir = string(default="%(here)s/user_dev/media/public")
|
base_dir = string(default="%(here)s/user_dev/media/public")
|
||||||
@@ -54,6 +61,11 @@ storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage
|
|||||||
base_dir = string(default="%(here)s/user_dev/media/queue")
|
base_dir = string(default="%(here)s/user_dev/media/queue")
|
||||||
|
|
||||||
|
|
||||||
|
# Should we keep the original file?
|
||||||
|
[media_type:mediagoblin.media_types.video]
|
||||||
|
keep_original = boolean(default=False)
|
||||||
|
|
||||||
|
|
||||||
[beaker.cache]
|
[beaker.cache]
|
||||||
type = string(default="file")
|
type = string(default="file")
|
||||||
data_dir = string(default="%(here)s/user_dev/beaker/cache/data")
|
data_dir = string(default="%(here)s/user_dev/beaker/cache/data")
|
||||||
|
|||||||
92
mediagoblin/db/mixin.py
Normal file
92
mediagoblin/db/mixin.py
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# 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/>.
|
||||||
|
|
||||||
|
"""
|
||||||
|
This module contains some Mixin classes for the db objects.
|
||||||
|
|
||||||
|
A bunch of functions on the db objects are really more like
|
||||||
|
"utility functions": They could live outside the classes
|
||||||
|
and be called "by hand" passing the appropiate reference.
|
||||||
|
They usually only use the public API of the object and
|
||||||
|
rarely use database related stuff.
|
||||||
|
|
||||||
|
These functions now live here and get "mixed in" into the
|
||||||
|
real objects.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from mediagoblin.auth import lib as auth_lib
|
||||||
|
from mediagoblin.tools import common
|
||||||
|
|
||||||
|
|
||||||
|
class UserMixin(object):
|
||||||
|
def check_login(self, password):
|
||||||
|
"""
|
||||||
|
See if a user can login with this password
|
||||||
|
"""
|
||||||
|
return auth_lib.bcrypt_check_password(
|
||||||
|
password, self.pw_hash)
|
||||||
|
|
||||||
|
|
||||||
|
class MediaEntryMixin(object):
|
||||||
|
def get_display_media(self, media_map,
|
||||||
|
fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER):
|
||||||
|
"""
|
||||||
|
Find the best media for display.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
- media_map: a dict like
|
||||||
|
{u'image_size': [u'dir1', u'dir2', u'image.jpg']}
|
||||||
|
- fetch_order: the order we should try fetching images in
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
(media_size, media_path)
|
||||||
|
"""
|
||||||
|
media_sizes = media_map.keys()
|
||||||
|
|
||||||
|
for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER:
|
||||||
|
if media_size in media_sizes:
|
||||||
|
return media_map[media_size]
|
||||||
|
|
||||||
|
def main_mediafile(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def url_for_self(self, urlgen, **extra_args):
|
||||||
|
"""
|
||||||
|
Generate an appropriate url for ourselves
|
||||||
|
|
||||||
|
Use a slug if we have one, else use our '_id'.
|
||||||
|
"""
|
||||||
|
uploader = self.get_uploader
|
||||||
|
|
||||||
|
if self.get('slug'):
|
||||||
|
return urlgen(
|
||||||
|
'mediagoblin.user_pages.media_home',
|
||||||
|
user=uploader.username,
|
||||||
|
media=self.slug,
|
||||||
|
**extra_args)
|
||||||
|
else:
|
||||||
|
return urlgen(
|
||||||
|
'mediagoblin.user_pages.media_home',
|
||||||
|
user=uploader.username,
|
||||||
|
media=unicode(self._id),
|
||||||
|
**extra_args)
|
||||||
|
|
||||||
|
def get_fail_exception(self):
|
||||||
|
"""
|
||||||
|
Get the exception that's appropriate for this error
|
||||||
|
"""
|
||||||
|
if self['fail_error']:
|
||||||
|
return common.import_component(self['fail_error'])
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
{#
|
|
||||||
# GNU MediaGoblin -- federated, autonomous media hosting
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
# Copyright (C) 2011 Free Software Foundation, Inc
|
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -14,14 +13,3 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#}
|
|
||||||
{% extends "mediagoblin/base.html" %}
|
|
||||||
|
|
||||||
{% block mediagoblin_content %}
|
|
||||||
<p>
|
|
||||||
{% trans -%}
|
|
||||||
Your password has been changed. Try to log in now.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
@@ -93,8 +93,9 @@ MEDIAENTRY_INDEXES = {
|
|||||||
('created', DESCENDING)]},
|
('created', DESCENDING)]},
|
||||||
|
|
||||||
'state_uploader_tags_created': {
|
'state_uploader_tags_created': {
|
||||||
# Indexing on processed?, media uploader, associated tags, and timestamp
|
# Indexing on processed?, media uploader, associated tags, and
|
||||||
# Used for showing media items matching a tag search, most recent first.
|
# timestamp Used for showing media items matching a tag
|
||||||
|
# search, most recent first.
|
||||||
'index': [('state', ASCENDING),
|
'index': [('state', ASCENDING),
|
||||||
('uploader', ASCENDING),
|
('uploader', ASCENDING),
|
||||||
('tags.slug', DESCENDING),
|
('tags.slug', DESCENDING),
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from mediagoblin.db.util import RegisterMigration
|
from mediagoblin.db.mongo.util import RegisterMigration
|
||||||
from mediagoblin.tools.text import cleaned_markdown_conversion
|
from mediagoblin.tools.text import cleaned_markdown_conversion
|
||||||
|
|
||||||
|
|
||||||
@@ -100,3 +100,11 @@ def user_add_forgot_password_token_and_expires(database):
|
|||||||
"""
|
"""
|
||||||
add_table_field(database, 'users', 'fp_verification_key', None)
|
add_table_field(database, 'users', 'fp_verification_key', None)
|
||||||
add_table_field(database, 'users', 'fp_token_expire', None)
|
add_table_field(database, 'users', 'fp_token_expire', None)
|
||||||
|
|
||||||
|
|
||||||
|
@RegisterMigration(7)
|
||||||
|
def media_type_image_to_multimedia_type_image(database):
|
||||||
|
database['media_entries'].update(
|
||||||
|
{'media_type': 'image'},
|
||||||
|
{'$set': {'media_type': 'mediagoblin.media_types.image'}},
|
||||||
|
multi=True)
|
||||||
78
mediagoblin/db/mongo/open.py
Normal file
78
mediagoblin/db/mongo/open.py
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
|
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pymongo
|
||||||
|
import mongokit
|
||||||
|
from paste.deploy.converters import asint
|
||||||
|
from mediagoblin.db.mongo import models
|
||||||
|
from mediagoblin.db.mongo.util import MigrationManager
|
||||||
|
|
||||||
|
|
||||||
|
def connect_database_from_config(app_config, use_pymongo=False):
|
||||||
|
"""
|
||||||
|
Connect to the main database, take config from app_config
|
||||||
|
|
||||||
|
Optionally use pymongo instead of mongokit for the connection.
|
||||||
|
"""
|
||||||
|
port = app_config.get('db_port')
|
||||||
|
if port:
|
||||||
|
port = asint(port)
|
||||||
|
|
||||||
|
if use_pymongo:
|
||||||
|
connection = pymongo.Connection(
|
||||||
|
app_config.get('db_host'), port)
|
||||||
|
else:
|
||||||
|
connection = mongokit.Connection(
|
||||||
|
app_config.get('db_host'), port)
|
||||||
|
return connection
|
||||||
|
|
||||||
|
|
||||||
|
def setup_connection_and_db_from_config(app_config, use_pymongo=False):
|
||||||
|
"""
|
||||||
|
Setup connection and database from config.
|
||||||
|
|
||||||
|
Optionally use pymongo instead of mongokit.
|
||||||
|
"""
|
||||||
|
connection = connect_database_from_config(app_config, use_pymongo)
|
||||||
|
database_path = app_config['db_name']
|
||||||
|
db = connection[database_path]
|
||||||
|
|
||||||
|
if not use_pymongo:
|
||||||
|
models.register_models(connection)
|
||||||
|
|
||||||
|
return (connection, db)
|
||||||
|
|
||||||
|
|
||||||
|
def check_db_migrations_current(db):
|
||||||
|
# This MUST be imported so as to set up the appropriate migrations!
|
||||||
|
from mediagoblin.db.mongo import migrations
|
||||||
|
|
||||||
|
# Init the migration number if necessary
|
||||||
|
migration_manager = MigrationManager(db)
|
||||||
|
migration_manager.install_migration_version_if_missing()
|
||||||
|
|
||||||
|
# Tiny hack to warn user if our migration is out of date
|
||||||
|
if not migration_manager.database_at_latest_migration():
|
||||||
|
db_migration_num = migration_manager.database_current_migration()
|
||||||
|
latest_migration_num = migration_manager.latest_migration()
|
||||||
|
if db_migration_num < latest_migration_num:
|
||||||
|
print (
|
||||||
|
"*WARNING:* Your migrations are out of date, "
|
||||||
|
"maybe run ./bin/gmg migrate?")
|
||||||
|
elif db_migration_num > latest_migration_num:
|
||||||
|
print (
|
||||||
|
"*WARNING:* Your migrations are out of date... "
|
||||||
|
"in fact they appear to be from the future?!")
|
||||||
292
mediagoblin/db/mongo/util.py
Normal file
292
mediagoblin/db/mongo/util.py
Normal file
@@ -0,0 +1,292 @@
|
|||||||
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
|
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Utilities for database operations.
|
||||||
|
|
||||||
|
Some note on migration and indexing tools:
|
||||||
|
|
||||||
|
We store information about what the state of the database is in the
|
||||||
|
'mediagoblin' document of the 'app_metadata' collection. Keys in that
|
||||||
|
document relevant to here:
|
||||||
|
|
||||||
|
- 'migration_number': The integer representing the current state of
|
||||||
|
the migrations
|
||||||
|
"""
|
||||||
|
|
||||||
|
import copy
|
||||||
|
|
||||||
|
# Imports that other modules might use
|
||||||
|
from pymongo import ASCENDING, DESCENDING
|
||||||
|
from pymongo.errors import InvalidId
|
||||||
|
from mongokit import ObjectId
|
||||||
|
|
||||||
|
from mediagoblin.db.mongo.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES
|
||||||
|
|
||||||
|
|
||||||
|
################
|
||||||
|
# Indexing tools
|
||||||
|
################
|
||||||
|
|
||||||
|
|
||||||
|
def add_new_indexes(database, active_indexes=ACTIVE_INDEXES):
|
||||||
|
"""
|
||||||
|
Add any new indexes to the database.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
- database: pymongo or mongokit database instance.
|
||||||
|
- active_indexes: indexes to possibly add in the pattern of:
|
||||||
|
{'collection_name': {
|
||||||
|
'identifier': {
|
||||||
|
'index': [index_foo_goes_here],
|
||||||
|
'unique': True}}
|
||||||
|
where 'index' is the index to add and all other options are
|
||||||
|
arguments for collection.create_index.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A list of indexes added in form ('collection', 'index_name')
|
||||||
|
"""
|
||||||
|
indexes_added = []
|
||||||
|
|
||||||
|
for collection_name, indexes in active_indexes.iteritems():
|
||||||
|
collection = database[collection_name]
|
||||||
|
collection_indexes = collection.index_information().keys()
|
||||||
|
|
||||||
|
for index_name, index_data in indexes.iteritems():
|
||||||
|
if not index_name in collection_indexes:
|
||||||
|
# Get a copy actually so we don't modify the actual
|
||||||
|
# structure
|
||||||
|
index_data = copy.copy(index_data)
|
||||||
|
index = index_data.pop('index')
|
||||||
|
collection.create_index(
|
||||||
|
index, name=index_name, **index_data)
|
||||||
|
|
||||||
|
indexes_added.append((collection_name, index_name))
|
||||||
|
|
||||||
|
return indexes_added
|
||||||
|
|
||||||
|
|
||||||
|
def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES):
|
||||||
|
"""
|
||||||
|
Remove any deprecated indexes from the database.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
- database: pymongo or mongokit database instance.
|
||||||
|
- deprecated_indexes: the indexes to deprecate in the pattern of:
|
||||||
|
{'collection_name': {
|
||||||
|
'identifier': {
|
||||||
|
'index': [index_foo_goes_here],
|
||||||
|
'unique': True}}
|
||||||
|
|
||||||
|
(... although we really only need the 'identifier' here, as the
|
||||||
|
rest of the information isn't used in this case. But it's kept
|
||||||
|
around so we can remember what it was)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A list of indexes removed in form ('collection', 'index_name')
|
||||||
|
"""
|
||||||
|
indexes_removed = []
|
||||||
|
|
||||||
|
for collection_name, indexes in deprecated_indexes.iteritems():
|
||||||
|
collection = database[collection_name]
|
||||||
|
collection_indexes = collection.index_information().keys()
|
||||||
|
|
||||||
|
for index_name, index_data in indexes.iteritems():
|
||||||
|
if index_name in collection_indexes:
|
||||||
|
collection.drop_index(index_name)
|
||||||
|
|
||||||
|
indexes_removed.append((collection_name, index_name))
|
||||||
|
|
||||||
|
return indexes_removed
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
# Migration tools
|
||||||
|
#################
|
||||||
|
|
||||||
|
# The default migration registry...
|
||||||
|
#
|
||||||
|
# Don't set this yourself! RegisterMigration will automatically fill
|
||||||
|
# this with stuff via decorating methods in migrations.py
|
||||||
|
|
||||||
|
class MissingCurrentMigration(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
MIGRATIONS = {}
|
||||||
|
|
||||||
|
|
||||||
|
class RegisterMigration(object):
|
||||||
|
"""
|
||||||
|
Tool for registering migrations
|
||||||
|
|
||||||
|
Call like:
|
||||||
|
|
||||||
|
@RegisterMigration(33)
|
||||||
|
def update_dwarves(database):
|
||||||
|
[...]
|
||||||
|
|
||||||
|
This will register your migration with the default migration
|
||||||
|
registry. Alternately, to specify a very specific
|
||||||
|
migration_registry, you can pass in that as the second argument.
|
||||||
|
|
||||||
|
Note, the number of your migration should NEVER be 0 or less than
|
||||||
|
0. 0 is the default "no migrations" state!
|
||||||
|
"""
|
||||||
|
def __init__(self, migration_number, migration_registry=MIGRATIONS):
|
||||||
|
assert migration_number > 0, "Migration number must be > 0!"
|
||||||
|
assert migration_number not in migration_registry, \
|
||||||
|
"Duplicate migration numbers detected! That's not allowed!"
|
||||||
|
|
||||||
|
self.migration_number = migration_number
|
||||||
|
self.migration_registry = migration_registry
|
||||||
|
|
||||||
|
def __call__(self, migration):
|
||||||
|
self.migration_registry[self.migration_number] = migration
|
||||||
|
return migration
|
||||||
|
|
||||||
|
|
||||||
|
class MigrationManager(object):
|
||||||
|
"""
|
||||||
|
Migration handling tool.
|
||||||
|
|
||||||
|
Takes information about a database, lets you update the database
|
||||||
|
to the latest migrations, etc.
|
||||||
|
"""
|
||||||
|
def __init__(self, database, migration_registry=MIGRATIONS):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
- database: database we're going to migrate
|
||||||
|
- migration_registry: where we should find all migrations to
|
||||||
|
run
|
||||||
|
"""
|
||||||
|
self.database = database
|
||||||
|
self.migration_registry = migration_registry
|
||||||
|
self._sorted_migrations = None
|
||||||
|
|
||||||
|
def _ensure_current_migration_record(self):
|
||||||
|
"""
|
||||||
|
If there isn't a database[u'app_metadata'] mediagoblin entry
|
||||||
|
with the 'current_migration', throw an error.
|
||||||
|
"""
|
||||||
|
if self.database_current_migration() is None:
|
||||||
|
raise MissingCurrentMigration(
|
||||||
|
"Tried to call function which requires "
|
||||||
|
"'current_migration' set in database")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sorted_migrations(self):
|
||||||
|
"""
|
||||||
|
Sort migrations if necessary and store in self._sorted_migrations
|
||||||
|
"""
|
||||||
|
if not self._sorted_migrations:
|
||||||
|
self._sorted_migrations = sorted(
|
||||||
|
self.migration_registry.items(),
|
||||||
|
# sort on the key... the migration number
|
||||||
|
key=lambda migration_tuple: migration_tuple[0])
|
||||||
|
|
||||||
|
return self._sorted_migrations
|
||||||
|
|
||||||
|
def latest_migration(self):
|
||||||
|
"""
|
||||||
|
Return a migration number for the latest migration, or 0 if
|
||||||
|
there are no migrations.
|
||||||
|
"""
|
||||||
|
if self.sorted_migrations:
|
||||||
|
return self.sorted_migrations[-1][0]
|
||||||
|
else:
|
||||||
|
# If no migrations have been set, we start at 0.
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def set_current_migration(self, migration_number):
|
||||||
|
"""
|
||||||
|
Set the migration in the database to migration_number
|
||||||
|
"""
|
||||||
|
# Add the mediagoblin migration if necessary
|
||||||
|
self.database[u'app_metadata'].update(
|
||||||
|
{u'_id': u'mediagoblin'},
|
||||||
|
{u'$set': {u'current_migration': migration_number}},
|
||||||
|
upsert=True)
|
||||||
|
|
||||||
|
def install_migration_version_if_missing(self):
|
||||||
|
"""
|
||||||
|
Sets the migration to the latest version if no migration
|
||||||
|
version at all is set.
|
||||||
|
"""
|
||||||
|
mgoblin_metadata = self.database[u'app_metadata'].find_one(
|
||||||
|
{u'_id': u'mediagoblin'})
|
||||||
|
if not mgoblin_metadata:
|
||||||
|
latest_migration = self.latest_migration()
|
||||||
|
self.set_current_migration(latest_migration)
|
||||||
|
|
||||||
|
def database_current_migration(self):
|
||||||
|
"""
|
||||||
|
Return the current migration in the database.
|
||||||
|
"""
|
||||||
|
mgoblin_metadata = self.database[u'app_metadata'].find_one(
|
||||||
|
{u'_id': u'mediagoblin'})
|
||||||
|
if not mgoblin_metadata:
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
return mgoblin_metadata[u'current_migration']
|
||||||
|
|
||||||
|
def database_at_latest_migration(self):
|
||||||
|
"""
|
||||||
|
See if the database is at the latest migration.
|
||||||
|
Returns a boolean.
|
||||||
|
"""
|
||||||
|
current_migration = self.database_current_migration()
|
||||||
|
return current_migration == self.latest_migration()
|
||||||
|
|
||||||
|
def migrations_to_run(self):
|
||||||
|
"""
|
||||||
|
Get a list of migrations to run still, if any.
|
||||||
|
|
||||||
|
Note that calling this will set your migration version to the
|
||||||
|
latest version if it isn't installed to anything yet!
|
||||||
|
"""
|
||||||
|
self._ensure_current_migration_record()
|
||||||
|
|
||||||
|
db_current_migration = self.database_current_migration()
|
||||||
|
|
||||||
|
return [
|
||||||
|
(migration_number, migration_func)
|
||||||
|
for migration_number, migration_func in self.sorted_migrations
|
||||||
|
if migration_number > db_current_migration]
|
||||||
|
|
||||||
|
def migrate_new(self, pre_callback=None, post_callback=None):
|
||||||
|
"""
|
||||||
|
Run all migrations.
|
||||||
|
|
||||||
|
Includes two optional args:
|
||||||
|
- pre_callback: if called, this is a callback on something to
|
||||||
|
run pre-migration. Takes (migration_number, migration_func)
|
||||||
|
as arguments
|
||||||
|
- pre_callback: if called, this is a callback on something to
|
||||||
|
run post-migration. Takes (migration_number, migration_func)
|
||||||
|
as arguments
|
||||||
|
"""
|
||||||
|
# If we aren't set to any version number, presume we're at the
|
||||||
|
# latest (which means we'll do nothing here...)
|
||||||
|
self.install_migration_version_if_missing()
|
||||||
|
|
||||||
|
for migration_number, migration_func in self.migrations_to_run():
|
||||||
|
if pre_callback:
|
||||||
|
pre_callback(migration_number, migration_func)
|
||||||
|
migration_func(self.database)
|
||||||
|
self.set_current_migration(migration_number)
|
||||||
|
if post_callback:
|
||||||
|
post_callback(migration_number, migration_func)
|
||||||
@@ -14,42 +14,5 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import pymongo
|
from mediagoblin.db.mongo.open import \
|
||||||
import mongokit
|
setup_connection_and_db_from_config, check_db_migrations_current
|
||||||
from paste.deploy.converters import asint
|
|
||||||
from mediagoblin.db import models
|
|
||||||
|
|
||||||
|
|
||||||
def connect_database_from_config(app_config, use_pymongo=False):
|
|
||||||
"""
|
|
||||||
Connect to the main database, take config from app_config
|
|
||||||
|
|
||||||
Optionally use pymongo instead of mongokit for the connection.
|
|
||||||
"""
|
|
||||||
port = app_config.get('db_port')
|
|
||||||
if port:
|
|
||||||
port = asint(port)
|
|
||||||
|
|
||||||
if use_pymongo:
|
|
||||||
connection = pymongo.Connection(
|
|
||||||
app_config.get('db_host'), port)
|
|
||||||
else:
|
|
||||||
connection = mongokit.Connection(
|
|
||||||
app_config.get('db_host'), port)
|
|
||||||
return connection
|
|
||||||
|
|
||||||
|
|
||||||
def setup_connection_and_db_from_config(app_config, use_pymongo=False):
|
|
||||||
"""
|
|
||||||
Setup connection and database from config.
|
|
||||||
|
|
||||||
Optionally use pymongo instead of mongokit.
|
|
||||||
"""
|
|
||||||
connection = connect_database_from_config(app_config, use_pymongo)
|
|
||||||
database_path = app_config['db_name']
|
|
||||||
db = connection[database_path]
|
|
||||||
|
|
||||||
if not use_pymongo:
|
|
||||||
models.register_models(connection)
|
|
||||||
|
|
||||||
return (connection, db)
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{#
|
|
||||||
# GNU MediaGoblin -- federated, autonomous media hosting
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
# Copyright (C) 2011 Free Software Foundation, Inc
|
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -14,15 +13,3 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#}
|
|
||||||
{% extends "mediagoblin/base.html" %}
|
|
||||||
|
|
||||||
{% block mediagoblin_content %}
|
|
||||||
<p>
|
|
||||||
{% trans -%}
|
|
||||||
Check your inbox. We sent an email with a URL for changing your password.
|
|
||||||
{%- endtrans %}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
38
mediagoblin/db/sql/base.py
Normal file
38
mediagoblin/db/sql/base.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
from sqlalchemy.orm import scoped_session, sessionmaker, object_session
|
||||||
|
|
||||||
|
|
||||||
|
Session = scoped_session(sessionmaker())
|
||||||
|
|
||||||
|
|
||||||
|
def _fix_query_dict(query_dict):
|
||||||
|
if '_id' in query_dict:
|
||||||
|
query_dict['id'] = query_dict.pop('_id')
|
||||||
|
|
||||||
|
|
||||||
|
class GMGTableBase(object):
|
||||||
|
query = Session.query_property()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def find(cls, query_dict={}):
|
||||||
|
_fix_query_dict(query_dict)
|
||||||
|
return cls.query.filter_by(**query_dict)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def find_one(cls, query_dict={}):
|
||||||
|
_fix_query_dict(query_dict)
|
||||||
|
return cls.query.filter_by(**query_dict).first()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def one(cls, query_dict):
|
||||||
|
return cls.find(query_dict).one()
|
||||||
|
|
||||||
|
def get(self, key):
|
||||||
|
return getattr(self, key)
|
||||||
|
|
||||||
|
def save(self, validate = True):
|
||||||
|
assert validate
|
||||||
|
sess = object_session(self)
|
||||||
|
if sess is None:
|
||||||
|
sess = Session()
|
||||||
|
sess.add(self)
|
||||||
|
sess.commit()
|
||||||
151
mediagoblin/db/sql/convert.py
Normal file
151
mediagoblin/db/sql/convert.py
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
from mediagoblin.init import setup_global_and_app_config, setup_database
|
||||||
|
from mediagoblin.db.mongo.util import ObjectId
|
||||||
|
|
||||||
|
from mediagoblin.db.sql.models import (Base, User, MediaEntry, MediaComment,
|
||||||
|
Tag, MediaTag, MediaFile)
|
||||||
|
from mediagoblin.db.sql.open import setup_connection_and_db_from_config as \
|
||||||
|
sql_connect
|
||||||
|
from mediagoblin.db.mongo.open import setup_connection_and_db_from_config as \
|
||||||
|
mongo_connect
|
||||||
|
from mediagoblin.db.sql.base import Session
|
||||||
|
|
||||||
|
|
||||||
|
obj_id_table = dict()
|
||||||
|
|
||||||
|
def add_obj_ids(entry, new_entry):
|
||||||
|
global obj_id_table
|
||||||
|
print "%r -> %r" % (entry._id, new_entry.id)
|
||||||
|
obj_id_table[entry._id] = new_entry.id
|
||||||
|
|
||||||
|
|
||||||
|
def copy_attrs(entry, new_entry, attr_list):
|
||||||
|
for a in attr_list:
|
||||||
|
val = entry[a]
|
||||||
|
setattr(new_entry, a, val)
|
||||||
|
|
||||||
|
def copy_reference_attr(entry, new_entry, ref_attr):
|
||||||
|
val = entry[ref_attr]
|
||||||
|
val = obj_id_table[val]
|
||||||
|
setattr(new_entry, ref_attr, val)
|
||||||
|
|
||||||
|
|
||||||
|
def convert_users(mk_db):
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
for entry in mk_db.User.find():
|
||||||
|
print entry.username
|
||||||
|
|
||||||
|
new_entry = User()
|
||||||
|
copy_attrs(entry, new_entry,
|
||||||
|
('username', 'email', 'created', 'pw_hash', 'email_verified',
|
||||||
|
'status', 'verification_key', 'is_admin', 'url',
|
||||||
|
'bio', 'bio_html',
|
||||||
|
'fp_verification_key', 'fp_token_expire',))
|
||||||
|
# new_entry.fp_verification_expire = entry.fp_token_expire
|
||||||
|
|
||||||
|
session.add(new_entry)
|
||||||
|
session.flush()
|
||||||
|
add_obj_ids(entry, new_entry)
|
||||||
|
|
||||||
|
session.commit()
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
|
||||||
|
def convert_media_entries(mk_db):
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
for entry in mk_db.MediaEntry.find():
|
||||||
|
print repr(entry.title)
|
||||||
|
|
||||||
|
new_entry = MediaEntry()
|
||||||
|
copy_attrs(entry, new_entry,
|
||||||
|
('title', 'slug', 'created',
|
||||||
|
'description', 'description_html',
|
||||||
|
'media_type', 'state',
|
||||||
|
'fail_error',
|
||||||
|
'queued_task_id',))
|
||||||
|
copy_reference_attr(entry, new_entry, "uploader")
|
||||||
|
|
||||||
|
session.add(new_entry)
|
||||||
|
session.flush()
|
||||||
|
add_obj_ids(entry, new_entry)
|
||||||
|
|
||||||
|
for key, value in entry.media_files.iteritems():
|
||||||
|
new_file = MediaFile(name=key, file_path=value)
|
||||||
|
new_file.media_entry = new_entry.id
|
||||||
|
Session.add(new_file)
|
||||||
|
|
||||||
|
session.commit()
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
|
||||||
|
def convert_media_tags(mk_db):
|
||||||
|
session = Session()
|
||||||
|
session.autoflush = False
|
||||||
|
|
||||||
|
for media in mk_db.MediaEntry.find():
|
||||||
|
print repr(media.title)
|
||||||
|
|
||||||
|
for otag in media.tags:
|
||||||
|
print " ", repr((otag["slug"], otag["name"]))
|
||||||
|
|
||||||
|
nslug = session.query(Tag).filter_by(slug=otag["slug"]).first()
|
||||||
|
print " ", repr(nslug)
|
||||||
|
if nslug is None:
|
||||||
|
nslug = Tag(slug=otag["slug"])
|
||||||
|
session.add(nslug)
|
||||||
|
session.flush()
|
||||||
|
print " ", repr(nslug), nslug.id
|
||||||
|
|
||||||
|
ntag = MediaTag()
|
||||||
|
ntag.tag = nslug.id
|
||||||
|
ntag.name = otag["name"]
|
||||||
|
ntag.media_entry = obj_id_table[media._id]
|
||||||
|
session.add(ntag)
|
||||||
|
|
||||||
|
session.commit()
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
|
||||||
|
def convert_media_comments(mk_db):
|
||||||
|
session = Session()
|
||||||
|
|
||||||
|
for entry in mk_db.MediaComment.find():
|
||||||
|
print repr(entry.content)
|
||||||
|
|
||||||
|
new_entry = MediaComment()
|
||||||
|
copy_attrs(entry, new_entry,
|
||||||
|
('created',
|
||||||
|
'content', 'content_html',))
|
||||||
|
copy_reference_attr(entry, new_entry, "media_entry")
|
||||||
|
copy_reference_attr(entry, new_entry, "author")
|
||||||
|
|
||||||
|
session.add(new_entry)
|
||||||
|
session.flush()
|
||||||
|
add_obj_ids(entry, new_entry)
|
||||||
|
|
||||||
|
session.commit()
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
global_config, app_config = setup_global_and_app_config("mediagoblin.ini")
|
||||||
|
|
||||||
|
sql_conn, sql_db = sql_connect({'sql_engine': 'sqlite:///mediagoblin.db'})
|
||||||
|
|
||||||
|
mk_conn, mk_db = mongo_connect(app_config)
|
||||||
|
|
||||||
|
Base.metadata.create_all(sql_db.engine)
|
||||||
|
|
||||||
|
convert_users(mk_db)
|
||||||
|
Session.remove()
|
||||||
|
convert_media_entries(mk_db)
|
||||||
|
Session.remove()
|
||||||
|
convert_media_tags(mk_db)
|
||||||
|
Session.remove()
|
||||||
|
convert_media_comments(mk_db)
|
||||||
|
Session.remove()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
18
mediagoblin/db/sql/extratypes.py
Normal file
18
mediagoblin/db/sql/extratypes.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from sqlalchemy.types import TypeDecorator, Unicode
|
||||||
|
|
||||||
|
|
||||||
|
class PathTupleWithSlashes(TypeDecorator):
|
||||||
|
"Represents a Tuple of strings as a slash separated string."
|
||||||
|
|
||||||
|
impl = Unicode
|
||||||
|
|
||||||
|
def process_bind_param(self, value, dialect):
|
||||||
|
if value is not None:
|
||||||
|
assert len(value), "Does not support empty lists"
|
||||||
|
value = '/'.join(value)
|
||||||
|
return value
|
||||||
|
|
||||||
|
def process_result_value(self, value, dialect):
|
||||||
|
if value is not None:
|
||||||
|
value = tuple(value.split('/'))
|
||||||
|
return value
|
||||||
153
mediagoblin/db/sql/models.py
Normal file
153
mediagoblin/db/sql/models.py
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
from sqlalchemy import (
|
||||||
|
Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey,
|
||||||
|
UniqueConstraint)
|
||||||
|
from sqlalchemy.orm import relationship
|
||||||
|
from sqlalchemy.orm.collections import attribute_mapped_collection
|
||||||
|
from sqlalchemy.ext.associationproxy import association_proxy
|
||||||
|
|
||||||
|
from mediagoblin.db.sql.extratypes import PathTupleWithSlashes
|
||||||
|
from mediagoblin.db.sql.base import GMGTableBase
|
||||||
|
from mediagoblin.db.mixin import UserMixin, MediaEntryMixin
|
||||||
|
|
||||||
|
|
||||||
|
Base = declarative_base(cls=GMGTableBase)
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleFieldAlias(object):
|
||||||
|
"""An alias for any field"""
|
||||||
|
def __init__(self, fieldname):
|
||||||
|
self.fieldname = fieldname
|
||||||
|
|
||||||
|
def __get__(self, instance, cls):
|
||||||
|
return getattr(instance, self.fieldname)
|
||||||
|
|
||||||
|
def __set__(self, instance, val):
|
||||||
|
setattr(instance, self.fieldname, val)
|
||||||
|
|
||||||
|
|
||||||
|
class User(Base, UserMixin):
|
||||||
|
__tablename__ = "users"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
username = Column(Unicode, nullable=False, unique=True)
|
||||||
|
email = Column(Unicode, nullable=False)
|
||||||
|
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
|
||||||
|
pw_hash = Column(Unicode, nullable=False)
|
||||||
|
email_verified = Column(Boolean)
|
||||||
|
status = Column(Unicode, default=u"needs_email_verification", nullable=False)
|
||||||
|
verification_key = Column(Unicode)
|
||||||
|
is_admin = Column(Boolean, default=False, nullable=False)
|
||||||
|
url = Column(Unicode)
|
||||||
|
bio = Column(UnicodeText) # ??
|
||||||
|
bio_html = Column(UnicodeText) # ??
|
||||||
|
fp_verification_key = Column(Unicode)
|
||||||
|
fp_token_expire = Column(DateTime)
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
# plugin data would be in a separate model
|
||||||
|
|
||||||
|
_id = SimpleFieldAlias("id")
|
||||||
|
|
||||||
|
|
||||||
|
class MediaEntry(Base, MediaEntryMixin):
|
||||||
|
__tablename__ = "media_entries"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
uploader = Column(Integer, ForeignKey('users.id'), nullable=False)
|
||||||
|
title = Column(Unicode, nullable=False)
|
||||||
|
slug = Column(Unicode, nullable=False)
|
||||||
|
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
|
||||||
|
description = Column(UnicodeText) # ??
|
||||||
|
description_html = Column(UnicodeText) # ??
|
||||||
|
media_type = Column(Unicode, nullable=False)
|
||||||
|
state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum?
|
||||||
|
|
||||||
|
fail_error = Column(Unicode)
|
||||||
|
fail_metadata = Column(UnicodeText)
|
||||||
|
|
||||||
|
queued_media_file = Column(PathTupleWithSlashes)
|
||||||
|
|
||||||
|
queued_task_id = Column(Unicode)
|
||||||
|
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint('uploader', 'slug'),
|
||||||
|
{})
|
||||||
|
|
||||||
|
get_uploader = relationship(User)
|
||||||
|
|
||||||
|
media_files_helper = relationship("MediaFile",
|
||||||
|
collection_class=attribute_mapped_collection("name"),
|
||||||
|
cascade="all, delete-orphan"
|
||||||
|
)
|
||||||
|
media_files = association_proxy('media_files_helper', 'file_path',
|
||||||
|
creator=lambda k,v: MediaFile(name=k, file_path=v)
|
||||||
|
)
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
# media_data
|
||||||
|
# attachment_files
|
||||||
|
# fail_error
|
||||||
|
|
||||||
|
|
||||||
|
class MediaFile(Base):
|
||||||
|
__tablename__ = "mediafiles"
|
||||||
|
|
||||||
|
media_entry = Column(
|
||||||
|
Integer, ForeignKey(MediaEntry.id),
|
||||||
|
nullable=False, primary_key=True)
|
||||||
|
name = Column(Unicode, primary_key=True)
|
||||||
|
file_path = Column(PathTupleWithSlashes)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return "<MediaFile %s: %r>" % (self.name, self.file_path)
|
||||||
|
|
||||||
|
|
||||||
|
class Tag(Base):
|
||||||
|
__tablename__ = "tags"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
slug = Column(Unicode, nullable=False, unique=True)
|
||||||
|
|
||||||
|
|
||||||
|
class MediaTag(Base):
|
||||||
|
__tablename__ = "media_tags"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
tag = Column(Integer, ForeignKey('tags.id'), nullable=False)
|
||||||
|
name = Column(Unicode)
|
||||||
|
media_entry = Column(
|
||||||
|
Integer, ForeignKey('media_entries.id'),
|
||||||
|
nullable=False)
|
||||||
|
# created = Column(DateTime, nullable=False, default=datetime.datetime.now)
|
||||||
|
|
||||||
|
__table_args__ = (
|
||||||
|
UniqueConstraint('tag', 'media_entry'),
|
||||||
|
{})
|
||||||
|
|
||||||
|
|
||||||
|
class MediaComment(Base):
|
||||||
|
__tablename__ = "media_comments"
|
||||||
|
|
||||||
|
id = Column(Integer, primary_key=True)
|
||||||
|
media_entry = Column(
|
||||||
|
Integer, ForeignKey('media_entries.id'), nullable=False)
|
||||||
|
author = Column(Integer, ForeignKey('users.id'), nullable=False)
|
||||||
|
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
|
||||||
|
content = Column(UnicodeText, nullable=False)
|
||||||
|
content_html = Column(UnicodeText)
|
||||||
|
|
||||||
|
get_author = relationship(User)
|
||||||
|
|
||||||
|
|
||||||
|
def show_table_init():
|
||||||
|
from sqlalchemy import create_engine
|
||||||
|
engine = create_engine('sqlite:///:memory:', echo=True)
|
||||||
|
|
||||||
|
Base.metadata.create_all(engine)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
show_table_init()
|
||||||
33
mediagoblin/db/sql/open.py
Normal file
33
mediagoblin/db/sql/open.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
from sqlalchemy import create_engine
|
||||||
|
|
||||||
|
from mediagoblin.db.sql.base import Session
|
||||||
|
from mediagoblin.db.sql.models import Base
|
||||||
|
|
||||||
|
|
||||||
|
class DatabaseMaster(object):
|
||||||
|
def __init__(self, engine):
|
||||||
|
self.engine = engine
|
||||||
|
|
||||||
|
for k,v in Base._decl_class_registry.iteritems():
|
||||||
|
setattr(self, k, v)
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
Session.commit()
|
||||||
|
|
||||||
|
def save(self, obj):
|
||||||
|
Session.add(obj)
|
||||||
|
Session.flush()
|
||||||
|
|
||||||
|
def reset_after_request(self):
|
||||||
|
Session.remove()
|
||||||
|
|
||||||
|
|
||||||
|
def setup_connection_and_db_from_config(app_config):
|
||||||
|
engine = create_engine(app_config['sql_engine'], echo=True)
|
||||||
|
Session.configure(bind=engine)
|
||||||
|
|
||||||
|
return "dummy conn", DatabaseMaster(engine)
|
||||||
|
|
||||||
|
|
||||||
|
def check_db_migrations_current(db):
|
||||||
|
pass
|
||||||
@@ -14,278 +14,5 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
from mediagoblin.db.mongo.util import (ObjectId, InvalidId,
|
||||||
Utilities for database operations.
|
DESCENDING)
|
||||||
|
|
||||||
Some note on migration and indexing tools:
|
|
||||||
|
|
||||||
We store information about what the state of the database is in the
|
|
||||||
'mediagoblin' document of the 'app_metadata' collection. Keys in that
|
|
||||||
document relevant to here:
|
|
||||||
|
|
||||||
- 'migration_number': The integer representing the current state of
|
|
||||||
the migrations
|
|
||||||
"""
|
|
||||||
|
|
||||||
import copy
|
|
||||||
|
|
||||||
# Imports that other modules might use
|
|
||||||
from pymongo import ASCENDING, DESCENDING
|
|
||||||
from pymongo.errors import InvalidId
|
|
||||||
from mongokit import ObjectId
|
|
||||||
|
|
||||||
from mediagoblin.db.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES
|
|
||||||
|
|
||||||
|
|
||||||
################
|
|
||||||
# Indexing tools
|
|
||||||
################
|
|
||||||
|
|
||||||
|
|
||||||
def add_new_indexes(database, active_indexes=ACTIVE_INDEXES):
|
|
||||||
"""
|
|
||||||
Add any new indexes to the database.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
- database: pymongo or mongokit database instance.
|
|
||||||
- active_indexes: indexes to possibly add in the pattern of:
|
|
||||||
{'collection_name': {
|
|
||||||
'identifier': {
|
|
||||||
'index': [index_foo_goes_here],
|
|
||||||
'unique': True}}
|
|
||||||
where 'index' is the index to add and all other options are
|
|
||||||
arguments for collection.create_index.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
A list of indexes added in form ('collection', 'index_name')
|
|
||||||
"""
|
|
||||||
indexes_added = []
|
|
||||||
|
|
||||||
for collection_name, indexes in active_indexes.iteritems():
|
|
||||||
collection = database[collection_name]
|
|
||||||
collection_indexes = collection.index_information().keys()
|
|
||||||
|
|
||||||
for index_name, index_data in indexes.iteritems():
|
|
||||||
if not index_name in collection_indexes:
|
|
||||||
# Get a copy actually so we don't modify the actual
|
|
||||||
# structure
|
|
||||||
index_data = copy.copy(index_data)
|
|
||||||
index = index_data.pop('index')
|
|
||||||
collection.create_index(
|
|
||||||
index, name=index_name, **index_data)
|
|
||||||
|
|
||||||
indexes_added.append((collection_name, index_name))
|
|
||||||
|
|
||||||
return indexes_added
|
|
||||||
|
|
||||||
|
|
||||||
def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES):
|
|
||||||
"""
|
|
||||||
Remove any deprecated indexes from the database.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
- database: pymongo or mongokit database instance.
|
|
||||||
- deprecated_indexes: the indexes to deprecate in the pattern of:
|
|
||||||
{'collection_name': {
|
|
||||||
'identifier': {
|
|
||||||
'index': [index_foo_goes_here],
|
|
||||||
'unique': True}}
|
|
||||||
|
|
||||||
(... although we really only need the 'identifier' here, as the
|
|
||||||
rest of the information isn't used in this case. But it's kept
|
|
||||||
around so we can remember what it was)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
A list of indexes removed in form ('collection', 'index_name')
|
|
||||||
"""
|
|
||||||
indexes_removed = []
|
|
||||||
|
|
||||||
for collection_name, indexes in deprecated_indexes.iteritems():
|
|
||||||
collection = database[collection_name]
|
|
||||||
collection_indexes = collection.index_information().keys()
|
|
||||||
|
|
||||||
for index_name, index_data in indexes.iteritems():
|
|
||||||
if index_name in collection_indexes:
|
|
||||||
collection.drop_index(index_name)
|
|
||||||
|
|
||||||
indexes_removed.append((collection_name, index_name))
|
|
||||||
|
|
||||||
return indexes_removed
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
|
||||||
# Migration tools
|
|
||||||
#################
|
|
||||||
|
|
||||||
# The default migration registry...
|
|
||||||
#
|
|
||||||
# Don't set this yourself! RegisterMigration will automatically fill
|
|
||||||
# this with stuff via decorating methods in migrations.py
|
|
||||||
|
|
||||||
class MissingCurrentMigration(Exception): pass
|
|
||||||
|
|
||||||
|
|
||||||
MIGRATIONS = {}
|
|
||||||
|
|
||||||
|
|
||||||
class RegisterMigration(object):
|
|
||||||
"""
|
|
||||||
Tool for registering migrations
|
|
||||||
|
|
||||||
Call like:
|
|
||||||
|
|
||||||
@RegisterMigration(33)
|
|
||||||
def update_dwarves(database):
|
|
||||||
[...]
|
|
||||||
|
|
||||||
This will register your migration with the default migration
|
|
||||||
registry. Alternately, to specify a very specific
|
|
||||||
migration_registry, you can pass in that as the second argument.
|
|
||||||
|
|
||||||
Note, the number of your migration should NEVER be 0 or less than
|
|
||||||
0. 0 is the default "no migrations" state!
|
|
||||||
"""
|
|
||||||
def __init__(self, migration_number, migration_registry=MIGRATIONS):
|
|
||||||
assert migration_number > 0, "Migration number must be > 0!"
|
|
||||||
assert not migration_registry.has_key(migration_number), \
|
|
||||||
"Duplicate migration numbers detected! That's not allowed!"
|
|
||||||
|
|
||||||
self.migration_number = migration_number
|
|
||||||
self.migration_registry = migration_registry
|
|
||||||
|
|
||||||
def __call__(self, migration):
|
|
||||||
self.migration_registry[self.migration_number] = migration
|
|
||||||
return migration
|
|
||||||
|
|
||||||
|
|
||||||
class MigrationManager(object):
|
|
||||||
"""
|
|
||||||
Migration handling tool.
|
|
||||||
|
|
||||||
Takes information about a database, lets you update the database
|
|
||||||
to the latest migrations, etc.
|
|
||||||
"""
|
|
||||||
def __init__(self, database, migration_registry=MIGRATIONS):
|
|
||||||
"""
|
|
||||||
Args:
|
|
||||||
- database: database we're going to migrate
|
|
||||||
- migration_registry: where we should find all migrations to
|
|
||||||
run
|
|
||||||
"""
|
|
||||||
self.database = database
|
|
||||||
self.migration_registry = migration_registry
|
|
||||||
self._sorted_migrations = None
|
|
||||||
|
|
||||||
def _ensure_current_migration_record(self):
|
|
||||||
"""
|
|
||||||
If there isn't a database[u'app_metadata'] mediagoblin entry
|
|
||||||
with the 'current_migration', throw an error.
|
|
||||||
"""
|
|
||||||
if self.database_current_migration() is None:
|
|
||||||
raise MissingCurrentMigration(
|
|
||||||
"Tried to call function which requires "
|
|
||||||
"'current_migration' set in database")
|
|
||||||
|
|
||||||
@property
|
|
||||||
def sorted_migrations(self):
|
|
||||||
"""
|
|
||||||
Sort migrations if necessary and store in self._sorted_migrations
|
|
||||||
"""
|
|
||||||
if not self._sorted_migrations:
|
|
||||||
self._sorted_migrations = sorted(
|
|
||||||
self.migration_registry.items(),
|
|
||||||
# sort on the key... the migration number
|
|
||||||
key=lambda migration_tuple: migration_tuple[0])
|
|
||||||
|
|
||||||
return self._sorted_migrations
|
|
||||||
|
|
||||||
def latest_migration(self):
|
|
||||||
"""
|
|
||||||
Return a migration number for the latest migration, or 0 if
|
|
||||||
there are no migrations.
|
|
||||||
"""
|
|
||||||
if self.sorted_migrations:
|
|
||||||
return self.sorted_migrations[-1][0]
|
|
||||||
else:
|
|
||||||
# If no migrations have been set, we start at 0.
|
|
||||||
return 0
|
|
||||||
|
|
||||||
def set_current_migration(self, migration_number):
|
|
||||||
"""
|
|
||||||
Set the migration in the database to migration_number
|
|
||||||
"""
|
|
||||||
# Add the mediagoblin migration if necessary
|
|
||||||
self.database[u'app_metadata'].update(
|
|
||||||
{u'_id': u'mediagoblin'},
|
|
||||||
{u'$set': {u'current_migration': migration_number}},
|
|
||||||
upsert=True)
|
|
||||||
|
|
||||||
def install_migration_version_if_missing(self):
|
|
||||||
"""
|
|
||||||
Sets the migration to the latest version if no migration
|
|
||||||
version at all is set.
|
|
||||||
"""
|
|
||||||
mgoblin_metadata = self.database[u'app_metadata'].find_one(
|
|
||||||
{u'_id': u'mediagoblin'})
|
|
||||||
if not mgoblin_metadata:
|
|
||||||
latest_migration = self.latest_migration()
|
|
||||||
self.set_current_migration(latest_migration)
|
|
||||||
|
|
||||||
def database_current_migration(self):
|
|
||||||
"""
|
|
||||||
Return the current migration in the database.
|
|
||||||
"""
|
|
||||||
mgoblin_metadata = self.database[u'app_metadata'].find_one(
|
|
||||||
{u'_id': u'mediagoblin'})
|
|
||||||
if not mgoblin_metadata:
|
|
||||||
return None
|
|
||||||
else:
|
|
||||||
return mgoblin_metadata[u'current_migration']
|
|
||||||
|
|
||||||
def database_at_latest_migration(self):
|
|
||||||
"""
|
|
||||||
See if the database is at the latest migration.
|
|
||||||
Returns a boolean.
|
|
||||||
"""
|
|
||||||
current_migration = self.database_current_migration()
|
|
||||||
return current_migration == self.latest_migration()
|
|
||||||
|
|
||||||
def migrations_to_run(self):
|
|
||||||
"""
|
|
||||||
Get a list of migrations to run still, if any.
|
|
||||||
|
|
||||||
Note that calling this will set your migration version to the
|
|
||||||
latest version if it isn't installed to anything yet!
|
|
||||||
"""
|
|
||||||
self._ensure_current_migration_record()
|
|
||||||
|
|
||||||
db_current_migration = self.database_current_migration()
|
|
||||||
|
|
||||||
return [
|
|
||||||
(migration_number, migration_func)
|
|
||||||
for migration_number, migration_func in self.sorted_migrations
|
|
||||||
if migration_number > db_current_migration]
|
|
||||||
|
|
||||||
def migrate_new(self, pre_callback=None, post_callback=None):
|
|
||||||
"""
|
|
||||||
Run all migrations.
|
|
||||||
|
|
||||||
Includes two optional args:
|
|
||||||
- pre_callback: if called, this is a callback on something to
|
|
||||||
run pre-migration. Takes (migration_number, migration_func)
|
|
||||||
as arguments
|
|
||||||
- pre_callback: if called, this is a callback on something to
|
|
||||||
run post-migration. Takes (migration_number, migration_func)
|
|
||||||
as arguments
|
|
||||||
"""
|
|
||||||
# If we aren't set to any version number, presume we're at the
|
|
||||||
# latest (which means we'll do nothing here...)
|
|
||||||
self.install_migration_version_if_missing()
|
|
||||||
|
|
||||||
for migration_number, migration_func in self.migrations_to_run():
|
|
||||||
if pre_callback:
|
|
||||||
pre_callback(migration_number, migration_func)
|
|
||||||
migration_func(self.database)
|
|
||||||
self.set_current_migration(migration_number)
|
|
||||||
if post_callback:
|
|
||||||
post_callback(migration_number, migration_func)
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ def require_active_login(controller):
|
|||||||
request.user.get('status') == u'needs_email_verification':
|
request.user.get('status') == u'needs_email_verification':
|
||||||
return redirect(
|
return redirect(
|
||||||
request, 'mediagoblin.user_pages.user_home',
|
request, 'mediagoblin.user_pages.user_home',
|
||||||
user=request.user['username'])
|
user=request.user.username)
|
||||||
elif not request.user or request.user.get('status') != u'active':
|
elif not request.user or request.user.get('status') != u'active':
|
||||||
return exc.HTTPFound(
|
return exc.HTTPFound(
|
||||||
location="%s?next=%s" % (
|
location="%s?next=%s" % (
|
||||||
@@ -57,10 +57,10 @@ def user_may_delete_media(controller):
|
|||||||
Require user ownership of the MediaEntry to delete.
|
Require user ownership of the MediaEntry to delete.
|
||||||
"""
|
"""
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
uploader = request.db.MediaEntry.find_one(
|
uploader_id = request.db.MediaEntry.find_one(
|
||||||
{'_id': ObjectId(request.matchdict['media'])}).uploader()
|
{'_id': ObjectId(request.matchdict['media'])}).uploader
|
||||||
if not (request.user['is_admin'] or
|
if not (request.user.is_admin or
|
||||||
request.user['_id'] == uploader['_id']):
|
request.user._id == uploader_id):
|
||||||
return exc.HTTPForbidden()
|
return exc.HTTPForbidden()
|
||||||
|
|
||||||
return controller(request, *args, **kwargs)
|
return controller(request, *args, **kwargs)
|
||||||
@@ -95,11 +95,10 @@ def get_user_media_entry(controller):
|
|||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
media = request.db.MediaEntry.find_one(
|
media = request.db.MediaEntry.find_one(
|
||||||
{'slug': request.matchdict['media'],
|
{'slug': request.matchdict['media'],
|
||||||
'state': 'processed',
|
'state': 'processed',
|
||||||
'uploader': user['_id']})
|
'uploader': user._id})
|
||||||
|
|
||||||
# no media via slug? Grab it via ObjectId
|
# no media via slug? Grab it via ObjectId
|
||||||
if not media:
|
if not media:
|
||||||
@@ -107,7 +106,7 @@ def get_user_media_entry(controller):
|
|||||||
media = request.db.MediaEntry.find_one(
|
media = request.db.MediaEntry.find_one(
|
||||||
{'_id': ObjectId(request.matchdict['media']),
|
{'_id': ObjectId(request.matchdict['media']),
|
||||||
'state': 'processed',
|
'state': 'processed',
|
||||||
'uploader': user['_id']})
|
'uploader': user._id})
|
||||||
except InvalidId:
|
except InvalidId:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
@@ -119,6 +118,7 @@ def get_user_media_entry(controller):
|
|||||||
|
|
||||||
return _make_safe(wrapper, controller)
|
return _make_safe(wrapper, controller)
|
||||||
|
|
||||||
|
|
||||||
def get_media_entry_by_id(controller):
|
def get_media_entry_by_id(controller):
|
||||||
"""
|
"""
|
||||||
Pass in a MediaEntry based off of a url component
|
Pass in a MediaEntry based off of a url component
|
||||||
@@ -138,4 +138,3 @@ def get_media_entry_by_id(controller):
|
|||||||
return controller(request, media=media, *args, **kwargs)
|
return controller(request, media=media, *args, **kwargs)
|
||||||
|
|
||||||
return _make_safe(wrapper, controller)
|
return _make_safe(wrapper, controller)
|
||||||
|
|
||||||
|
|||||||
@@ -13,5 +13,3 @@
|
|||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,15 +24,21 @@ class EditForm(wtforms.Form):
|
|||||||
title = wtforms.TextField(
|
title = wtforms.TextField(
|
||||||
_('Title'),
|
_('Title'),
|
||||||
[wtforms.validators.Length(min=0, max=500)])
|
[wtforms.validators.Length(min=0, max=500)])
|
||||||
description = wtforms.TextAreaField('Description of this work')
|
description = wtforms.TextAreaField(
|
||||||
|
_('Description of this work'),
|
||||||
|
description=_("""You can use
|
||||||
|
<a href="http://daringfireball.net/projects/markdown/basics">
|
||||||
|
Markdown</a> for formatting."""))
|
||||||
tags = wtforms.TextField(
|
tags = wtforms.TextField(
|
||||||
_('Tags'),
|
_('Tags'),
|
||||||
[tag_length_validator])
|
[tag_length_validator],
|
||||||
|
description=_(
|
||||||
|
"Separate tags by commas."))
|
||||||
slug = wtforms.TextField(
|
slug = wtforms.TextField(
|
||||||
_('Slug'),
|
_('Slug'),
|
||||||
[wtforms.validators.Required(message=_("The slug can't be empty"))],
|
[wtforms.validators.Required(message=_("The slug can't be empty"))],
|
||||||
description=_(
|
description=_(
|
||||||
"The title part of this media's URL. "
|
"The title part of this media's address. "
|
||||||
"You usually don't need to change this."))
|
"You usually don't need to change this."))
|
||||||
license = wtforms.SelectField(
|
license = wtforms.SelectField(
|
||||||
_('License'),
|
_('License'),
|
||||||
@@ -41,11 +47,27 @@ class EditForm(wtforms.Form):
|
|||||||
class EditProfileForm(wtforms.Form):
|
class EditProfileForm(wtforms.Form):
|
||||||
bio = wtforms.TextAreaField(
|
bio = wtforms.TextAreaField(
|
||||||
_('Bio'),
|
_('Bio'),
|
||||||
[wtforms.validators.Length(min=0, max=500)])
|
[wtforms.validators.Length(min=0, max=500)],
|
||||||
|
description=_("""You can use
|
||||||
|
<a href="http://daringfireball.net/projects/markdown/basics">
|
||||||
|
Markdown</a> for formatting."""))
|
||||||
url = wtforms.TextField(
|
url = wtforms.TextField(
|
||||||
_('Website'),
|
_('Website'),
|
||||||
[wtforms.validators.Optional(),
|
[wtforms.validators.Optional(),
|
||||||
wtforms.validators.URL(message='Improperly formed URL')])
|
wtforms.validators.URL(message="""This address contains errors""")])
|
||||||
|
|
||||||
|
|
||||||
|
class EditAccountForm(wtforms.Form):
|
||||||
|
old_password = wtforms.PasswordField(
|
||||||
|
_('Old password'),
|
||||||
|
[wtforms.validators.Required()],
|
||||||
|
description=_(
|
||||||
|
"Enter your old password to prove you own this account."))
|
||||||
|
new_password = wtforms.PasswordField(
|
||||||
|
_('New password'),
|
||||||
|
[wtforms.validators.Required(),
|
||||||
|
wtforms.validators.Length(min=6, max=30)],
|
||||||
|
id="password")
|
||||||
|
|
||||||
|
|
||||||
class EditAttachmentsForm(wtforms.Form):
|
class EditAttachmentsForm(wtforms.Form):
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
|
|
||||||
def may_edit_media(request, media):
|
def may_edit_media(request, media):
|
||||||
"""Check, if the request's user may edit the media details"""
|
"""Check, if the request's user may edit the media details"""
|
||||||
if media['uploader'] == request.user['_id']:
|
if media.uploader == request.user._id:
|
||||||
return True
|
return True
|
||||||
if request.user['is_admin']:
|
if request.user.is_admin:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|||||||
@@ -20,4 +20,7 @@ from routes.route import Route
|
|||||||
edit_routes = [
|
edit_routes = [
|
||||||
# Media editing view handled in user_pages/routing.py
|
# Media editing view handled in user_pages/routing.py
|
||||||
Route('mediagoblin.edit.profile', '/profile/',
|
Route('mediagoblin.edit.profile', '/profile/',
|
||||||
controller="mediagoblin.edit.views:edit_profile")]
|
controller="mediagoblin.edit.views:edit_profile"),
|
||||||
|
Route('mediagoblin.edit.account', '/account/',
|
||||||
|
controller="mediagoblin.edit.views:edit_account")
|
||||||
|
]
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ from werkzeug.utils import secure_filename
|
|||||||
from mediagoblin import messages
|
from mediagoblin import messages
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
|
|
||||||
|
from mediagoblin.auth import lib as auth_lib
|
||||||
from mediagoblin.edit import forms
|
from mediagoblin.edit import forms
|
||||||
from mediagoblin.edit.lib import may_edit_media
|
from mediagoblin.edit.lib import may_edit_media
|
||||||
from mediagoblin.decorators import require_active_login, get_user_media_entry
|
from mediagoblin.decorators import require_active_login, get_user_media_entry
|
||||||
@@ -43,11 +44,11 @@ def edit_media(request, media):
|
|||||||
return exc.HTTPForbidden()
|
return exc.HTTPForbidden()
|
||||||
|
|
||||||
defaults = dict(
|
defaults = dict(
|
||||||
title=media['title'],
|
title=media.title,
|
||||||
slug=media['slug'],
|
slug=media.slug,
|
||||||
description=media['description'],
|
description=media.description,
|
||||||
tags=media_tags_as_string(media['tags']),
|
tags=media_tags_as_string(media.tags))
|
||||||
license=media['license'])
|
license=media.license)
|
||||||
|
|
||||||
form = forms.EditForm(
|
form = forms.EditForm(
|
||||||
request.POST,
|
request.POST,
|
||||||
@@ -58,33 +59,34 @@ def edit_media(request, media):
|
|||||||
# and userid.
|
# and userid.
|
||||||
existing_user_slug_entries = request.db.MediaEntry.find(
|
existing_user_slug_entries = request.db.MediaEntry.find(
|
||||||
{'slug': request.POST['slug'],
|
{'slug': request.POST['slug'],
|
||||||
'uploader': media['uploader'],
|
'uploader': media.uploader,
|
||||||
'_id': {'$ne': media['_id']}}).count()
|
'_id': {'$ne': media._id}}).count()
|
||||||
|
|
||||||
if existing_user_slug_entries:
|
if existing_user_slug_entries:
|
||||||
form.slug.errors.append(
|
form.slug.errors.append(
|
||||||
_(u'An entry with that slug already exists for this user.'))
|
_(u'An entry with that slug already exists for this user.'))
|
||||||
else:
|
else:
|
||||||
media['title'] = unicode(request.POST['title'])
|
media.title = unicode(request.POST['title'])
|
||||||
media['description'] = unicode(request.POST.get('description'))
|
media.description = unicode(request.POST.get('description'))
|
||||||
media['tags'] = convert_to_tag_list_of_dicts(
|
media['tags'] = convert_to_tag_list_of_dicts(
|
||||||
request.POST.get('tags'))
|
request.POST.get('tags'))
|
||||||
|
|
||||||
media['description_html'] = cleaned_markdown_conversion(
|
media.description_html = cleaned_markdown_conversion(
|
||||||
media['description'])
|
media.description)
|
||||||
|
|
||||||
media['license'] = (
|
media.license = (
|
||||||
unicode(request.POST.get('license'))
|
unicode(request.POST.get('license'))
|
||||||
or '')
|
or '')
|
||||||
|
|
||||||
media['slug'] = unicode(request.POST['slug'])
|
media.slug = unicode(request.POST['slug'])
|
||||||
|
|
||||||
media.save()
|
media.save()
|
||||||
|
|
||||||
return exc.HTTPFound(
|
return exc.HTTPFound(
|
||||||
location=media.url_for_self(request.urlgen))
|
location=media.url_for_self(request.urlgen))
|
||||||
|
|
||||||
if request.user['is_admin'] \
|
if request.user.is_admin \
|
||||||
and media['uploader'] != request.user['_id'] \
|
and media.uploader != request.user._id \
|
||||||
and request.method != 'POST':
|
and request.method != 'POST':
|
||||||
messages.add_message(
|
messages.add_message(
|
||||||
request, messages.WARNING,
|
request, messages.WARNING,
|
||||||
@@ -110,7 +112,7 @@ def edit_attachments(request, media):
|
|||||||
|
|
||||||
attachment_public_filepath \
|
attachment_public_filepath \
|
||||||
= mg_globals.public_store.get_unique_filepath(
|
= mg_globals.public_store.get_unique_filepath(
|
||||||
['media_entries', unicode(media['_id']), 'attachment',
|
['media_entries', unicode(media._id), 'attachment',
|
||||||
secure_filename(request.POST['attachment_file'].filename)])
|
secure_filename(request.POST['attachment_file'].filename)])
|
||||||
|
|
||||||
attachment_public_file = mg_globals.public_store.get_file(
|
attachment_public_file = mg_globals.public_store.get_file(
|
||||||
@@ -126,7 +128,7 @@ def edit_attachments(request, media):
|
|||||||
name=request.POST['attachment_name'] \
|
name=request.POST['attachment_name'] \
|
||||||
or request.POST['attachment_file'].filename,
|
or request.POST['attachment_file'].filename,
|
||||||
filepath=attachment_public_filepath,
|
filepath=attachment_public_filepath,
|
||||||
created=datetime.utcnow()
|
created=datetime.utcnow(),
|
||||||
))
|
))
|
||||||
|
|
||||||
media.save()
|
media.save()
|
||||||
@@ -152,7 +154,7 @@ def edit_attachments(request, media):
|
|||||||
def edit_profile(request):
|
def edit_profile(request):
|
||||||
# admins may edit any user profile given a username in the querystring
|
# admins may edit any user profile given a username in the querystring
|
||||||
edit_username = request.GET.get('username')
|
edit_username = request.GET.get('username')
|
||||||
if request.user['is_admin'] and request.user['username'] != edit_username:
|
if request.user.is_admin and request.user.username != edit_username:
|
||||||
user = request.db.User.find_one({'username': edit_username})
|
user = request.db.User.find_one({'username': edit_username})
|
||||||
# No need to warn again if admin just submitted an edited profile
|
# No need to warn again if admin just submitted an edited profile
|
||||||
if request.method != 'POST':
|
if request.method != 'POST':
|
||||||
@@ -167,22 +169,64 @@ def edit_profile(request):
|
|||||||
bio=user.get('bio'))
|
bio=user.get('bio'))
|
||||||
|
|
||||||
if request.method == 'POST' and form.validate():
|
if request.method == 'POST' and form.validate():
|
||||||
user['url'] = unicode(request.POST['url'])
|
user.url = unicode(request.POST['url'])
|
||||||
user['bio'] = unicode(request.POST['bio'])
|
user.bio = unicode(request.POST['bio'])
|
||||||
|
|
||||||
user['bio_html'] = cleaned_markdown_conversion(user['bio'])
|
user.bio_html = cleaned_markdown_conversion(user.bio)
|
||||||
|
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
messages.add_message(request,
|
messages.add_message(request,
|
||||||
messages.SUCCESS,
|
messages.SUCCESS,
|
||||||
'Profile edited!')
|
_("Profile changes saved"))
|
||||||
return redirect(request,
|
return redirect(request,
|
||||||
'mediagoblin.user_pages.user_home',
|
'mediagoblin.user_pages.user_home',
|
||||||
user=edit_username)
|
user=user['username'])
|
||||||
|
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
request,
|
request,
|
||||||
'mediagoblin/edit/edit_profile.html',
|
'mediagoblin/edit/edit_profile.html',
|
||||||
{'user': user,
|
{'user': user,
|
||||||
'form': form})
|
'form': form})
|
||||||
|
|
||||||
|
|
||||||
|
@require_active_login
|
||||||
|
def edit_account(request):
|
||||||
|
edit_username = request.GET.get('username')
|
||||||
|
user = request.user
|
||||||
|
|
||||||
|
form = forms.EditAccountForm(request.POST)
|
||||||
|
|
||||||
|
if request.method == 'POST' and form.validate():
|
||||||
|
password_matches = auth_lib.bcrypt_check_password(
|
||||||
|
request.POST['old_password'],
|
||||||
|
user.pw_hash)
|
||||||
|
|
||||||
|
if (request.POST['old_password'] or request.POST['new_password']) and not \
|
||||||
|
password_matches:
|
||||||
|
form.old_password.errors.append(_('Wrong password'))
|
||||||
|
|
||||||
|
return render_to_response(
|
||||||
|
request,
|
||||||
|
'mediagoblin/edit/edit_account.html',
|
||||||
|
{'user': user,
|
||||||
|
'form': form})
|
||||||
|
|
||||||
|
if password_matches:
|
||||||
|
user.pw_hash = auth_lib.bcrypt_gen_password_hash(
|
||||||
|
request.POST['new_password'])
|
||||||
|
|
||||||
|
user.save()
|
||||||
|
|
||||||
|
messages.add_message(request,
|
||||||
|
messages.SUCCESS,
|
||||||
|
_("Account settings saved"))
|
||||||
|
return redirect(request,
|
||||||
|
'mediagoblin.user_pages.user_home',
|
||||||
|
user=user.username)
|
||||||
|
|
||||||
|
return render_to_response(
|
||||||
|
request,
|
||||||
|
'mediagoblin/edit/edit_account.html',
|
||||||
|
{'user': user,
|
||||||
|
'form': form})
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ def main_cli():
|
|||||||
|
|
||||||
subparsers = parser.add_subparsers(help='sub-command help')
|
subparsers = parser.add_subparsers(help='sub-command help')
|
||||||
for command_name, command_struct in SUBCOMMAND_MAP.iteritems():
|
for command_name, command_struct in SUBCOMMAND_MAP.iteritems():
|
||||||
if command_struct.has_key('help'):
|
if 'help' in command_struct:
|
||||||
subparser = subparsers.add_parser(
|
subparser = subparsers.add_parser(
|
||||||
command_name, help=command_struct['help'])
|
command_name, help=command_struct['help'])
|
||||||
else:
|
else:
|
||||||
@@ -94,4 +94,3 @@ def main_cli():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main_cli()
|
main_cli()
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.open import setup_connection_and_db_from_config
|
from mediagoblin.db.open import setup_connection_and_db_from_config
|
||||||
from mediagoblin.init.config import read_mediagoblin_config
|
|
||||||
from mediagoblin.storage.filestorage import BasicFileStorage
|
from mediagoblin.storage.filestorage import BasicFileStorage
|
||||||
from mediagoblin.init import setup_storage, setup_global_and_app_config
|
from mediagoblin.init import setup_storage, setup_global_and_app_config
|
||||||
|
|
||||||
@@ -65,10 +64,10 @@ def _import_media(db, args):
|
|||||||
queue_cache = BasicFileStorage(
|
queue_cache = BasicFileStorage(
|
||||||
args._cache_path['queue'])
|
args._cache_path['queue'])
|
||||||
|
|
||||||
for entry in db.media_entries.find():
|
for entry in db.MediaEntry.find():
|
||||||
for name, path in entry['media_files'].items():
|
for name, path in entry.media_files.items():
|
||||||
_log.info('Importing: {0} - {1}'.format(
|
_log.info('Importing: {0} - {1}'.format(
|
||||||
entry['title'],
|
entry.title,
|
||||||
name))
|
name))
|
||||||
|
|
||||||
media_file = mg_globals.public_store.get_file(path, mode='wb')
|
media_file = mg_globals.public_store.get_file(path, mode='wb')
|
||||||
@@ -108,7 +107,7 @@ def env_import(args):
|
|||||||
|
|
||||||
global_config, app_config = setup_global_and_app_config(args.conf_file)
|
global_config, app_config = setup_global_and_app_config(args.conf_file)
|
||||||
connection, db = setup_connection_and_db_from_config(
|
connection, db = setup_connection_and_db_from_config(
|
||||||
app_config, use_pymongo=True)
|
app_config)
|
||||||
|
|
||||||
tf = tarfile.open(
|
tf = tarfile.open(
|
||||||
args.tar_file,
|
args.tar_file,
|
||||||
@@ -207,15 +206,17 @@ def _export_media(db, args):
|
|||||||
queue_cache = BasicFileStorage(
|
queue_cache = BasicFileStorage(
|
||||||
args._cache_path['queue'])
|
args._cache_path['queue'])
|
||||||
|
|
||||||
for entry in db.media_entries.find():
|
for entry in db.MediaEntry.find():
|
||||||
for name, path in entry['media_files'].items():
|
for name, path in entry.media_files.items():
|
||||||
_log.info('Exporting {0} - {1}'.format(
|
_log.info(u'Exporting {0} - {1}'.format(
|
||||||
entry['title'],
|
entry.title,
|
||||||
name))
|
name))
|
||||||
|
try:
|
||||||
mc_file = media_cache.get_file(path, mode='wb')
|
mc_file = media_cache.get_file(path, mode='wb')
|
||||||
mc_file.write(
|
mc_file.write(
|
||||||
mg_globals.public_store.get_file(path, mode='rb').read())
|
mg_globals.public_store.get_file(path, mode='rb').read())
|
||||||
|
except Exception as e:
|
||||||
|
_log.error('Failed: {0}'.format(e))
|
||||||
|
|
||||||
_log.info('...Media exported')
|
_log.info('...Media exported')
|
||||||
|
|
||||||
@@ -226,7 +227,8 @@ def env_export(args):
|
|||||||
'''
|
'''
|
||||||
if args.cache_path:
|
if args.cache_path:
|
||||||
if os.path.exists(args.cache_path):
|
if os.path.exists(args.cache_path):
|
||||||
_log.error('The cache directory must not exist before you run this script')
|
_log.error('The cache directory must not exist '
|
||||||
|
'before you run this script')
|
||||||
_log.error('Cache directory: {0}'.format(args.cache_path))
|
_log.error('Cache directory: {0}'.format(args.cache_path))
|
||||||
|
|
||||||
return False
|
return False
|
||||||
@@ -244,7 +246,7 @@ def env_export(args):
|
|||||||
setup_storage()
|
setup_storage()
|
||||||
|
|
||||||
connection, db = setup_connection_and_db_from_config(
|
connection, db = setup_connection_and_db_from_config(
|
||||||
app_config, use_pymongo=True)
|
app_config)
|
||||||
|
|
||||||
_export_database(db, args)
|
_export_database(db, args)
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,12 @@
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from mediagoblin.db import util as db_util
|
from mediagoblin.db.mongo import util as db_util
|
||||||
from mediagoblin.db.open import setup_connection_and_db_from_config
|
from mediagoblin.db.open import setup_connection_and_db_from_config
|
||||||
from mediagoblin.init.config import read_mediagoblin_config
|
from mediagoblin.init import setup_global_and_app_config
|
||||||
|
|
||||||
# This MUST be imported so as to set up the appropriate migrations!
|
# This MUST be imported so as to set up the appropriate migrations!
|
||||||
from mediagoblin.db import migrations
|
from mediagoblin.db.mongo import migrations
|
||||||
|
|
||||||
|
|
||||||
def migrate_parser_setup(subparser):
|
def migrate_parser_setup(subparser):
|
||||||
@@ -41,9 +41,9 @@ def _print_finished_migration(migration_number, migration_func):
|
|||||||
|
|
||||||
|
|
||||||
def migrate(args):
|
def migrate(args):
|
||||||
config, validation_result = read_mediagoblin_config(args.conf_file)
|
global_config, app_config = setup_global_and_app_config(args.conf_file)
|
||||||
connection, db = setup_connection_and_db_from_config(
|
connection, db = setup_connection_and_db_from_config(
|
||||||
config['mediagoblin'], use_pymongo=True)
|
app_config, use_pymongo=True)
|
||||||
migration_manager = db_util.MigrationManager(db)
|
migration_manager = db_util.MigrationManager(db)
|
||||||
|
|
||||||
# Clear old indexes
|
# Clear old indexes
|
||||||
|
|||||||
@@ -18,27 +18,30 @@ from mediagoblin.gmg_commands import util as commands_util
|
|||||||
from mediagoblin.auth import lib as auth_lib
|
from mediagoblin.auth import lib as auth_lib
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
|
|
||||||
|
|
||||||
def adduser_parser_setup(subparser):
|
def adduser_parser_setup(subparser):
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'username',
|
'--username','-u',
|
||||||
help="Username used to login")
|
help="Username used to login")
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'password',
|
'--password','-p',
|
||||||
help="Your supersecret word to login")
|
help="Your supersecret word to login, beware of storing it in bash history")
|
||||||
subparser.add_argument(
|
subparser.add_argument(
|
||||||
'email',
|
'--email','-e',
|
||||||
help="Email to recieve notifications")
|
help="Email to receive notifications")
|
||||||
|
|
||||||
|
|
||||||
def adduser(args):
|
def adduser(args):
|
||||||
#TODO: Lets trust admins this do not validate Emails :)
|
#TODO: Lets trust admins this do not validate Emails :)
|
||||||
commands_util.setup_app(args)
|
commands_util.setup_app(args)
|
||||||
|
|
||||||
|
args.username = commands_util.prompt_if_not_set(args.username, "Username:")
|
||||||
|
args.password = commands_util.prompt_if_not_set(args.password, "Password:",True)
|
||||||
|
args.email = commands_util.prompt_if_not_set(args.email, "Email:")
|
||||||
|
|
||||||
db = mg_globals.database
|
db = mg_globals.database
|
||||||
users_with_username = \
|
users_with_username = \
|
||||||
db.User.find({
|
db.User.find({
|
||||||
'username': args.username.lower()
|
'username': args.username.lower(),
|
||||||
}).count()
|
}).count()
|
||||||
|
|
||||||
if users_with_username:
|
if users_with_username:
|
||||||
@@ -47,11 +50,11 @@ def adduser(args):
|
|||||||
else:
|
else:
|
||||||
# Create the user
|
# Create the user
|
||||||
entry = db.User()
|
entry = db.User()
|
||||||
entry['username'] = unicode(args.username.lower())
|
entry.username = unicode(args.username.lower())
|
||||||
entry['email'] = unicode(args.email)
|
entry.email = unicode(args.email)
|
||||||
entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
|
entry.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password)
|
||||||
entry['status'] = u'active'
|
entry.status = u'active'
|
||||||
entry['email_verified'] = True
|
entry.email_verified = True
|
||||||
entry.save(validate=True)
|
entry.save(validate=True)
|
||||||
|
|
||||||
print "User created (and email marked as verified)"
|
print "User created (and email marked as verified)"
|
||||||
@@ -70,7 +73,7 @@ def makeadmin(args):
|
|||||||
|
|
||||||
user = db.User.one({'username': unicode(args.username.lower())})
|
user = db.User.one({'username': unicode(args.username.lower())})
|
||||||
if user:
|
if user:
|
||||||
user['is_admin'] = True
|
user.is_admin = True
|
||||||
user.save()
|
user.save()
|
||||||
print 'The user is now Admin'
|
print 'The user is now Admin'
|
||||||
else:
|
else:
|
||||||
@@ -93,9 +96,8 @@ def changepw(args):
|
|||||||
|
|
||||||
user = db.User.one({'username': unicode(args.username.lower())})
|
user = db.User.one({'username': unicode(args.username.lower())})
|
||||||
if user:
|
if user:
|
||||||
user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password)
|
user.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password)
|
||||||
user.save()
|
user.save()
|
||||||
print 'Password successfully changed'
|
print 'Password successfully changed'
|
||||||
else:
|
else:
|
||||||
print 'The user doesn\'t exist'
|
print 'The user doesn\'t exist'
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from mediagoblin import app
|
from mediagoblin import app
|
||||||
|
import getpass
|
||||||
|
|
||||||
|
|
||||||
def setup_app(args):
|
def setup_app(args):
|
||||||
@@ -25,3 +26,15 @@ def setup_app(args):
|
|||||||
mgoblin_app = app.MediaGoblinApp(args.conf_file)
|
mgoblin_app = app.MediaGoblinApp(args.conf_file)
|
||||||
|
|
||||||
return mgoblin_app
|
return mgoblin_app
|
||||||
|
|
||||||
|
def prompt_if_not_set(variable, text, password=False):
|
||||||
|
"""
|
||||||
|
Checks if the variable is None and prompt for a value if it is
|
||||||
|
"""
|
||||||
|
if variable is None:
|
||||||
|
if not password:
|
||||||
|
variable=raw_input(text + u' ')
|
||||||
|
else:
|
||||||
|
variable=getpass.getpass(text + u' ')
|
||||||
|
|
||||||
|
return variable
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -10,8 +10,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -21,27 +21,19 @@ msgstr ""
|
|||||||
"Language: ar\n"
|
"Language: ar\n"
|
||||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "اسم المستخدم"
|
msgstr "اسم المستخدم"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "كلمة السر"
|
msgstr "كلمة السر"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "يجب أن تتطابق كلمتا السر."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "أكّد كلمة السر"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr "اكتبها مرة أخرى هنا للتأكد من عدم وجود أخطاء إملائية."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "عنوان البريد الإلكتروني"
|
msgstr "عنوان البريد الإلكتروني"
|
||||||
|
|
||||||
@@ -54,10 +46,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم."
|
msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "عفوًا، هذا العنوان البريدي مستخدم."
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -65,15 +57,28 @@ msgstr ""
|
|||||||
"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر "
|
"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر "
|
||||||
"الصور!"
|
"الصور!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "مفتاح التحقق أو معرف المستخدم خاطئ"
|
msgstr "مفتاح التحقق أو معرف المستخدم خاطئ"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "أعدنا إرسال رسالة التحقق."
|
msgstr "أعدنا إرسال رسالة التحقق."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
@@ -81,74 +86,127 @@ msgstr ""
|
|||||||
"تعذر إرسال رسالة استعادة كلمة السر لأن اسم المستخدم معطل أو لأننا لم نتحقق "
|
"تعذر إرسال رسالة استعادة كلمة السر لأن اسم المستخدم معطل أو لأننا لم نتحقق "
|
||||||
"من بريدك الإلكتروني."
|
"من بريدك الإلكتروني."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "العنوان"
|
msgstr "العنوان"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "وصف هذا العمل."
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "الوسوم"
|
msgstr "الوسوم"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "المسار"
|
msgstr "المسار"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "لا يمكن ترك المسار فارغًا"
|
msgstr "لا يمكن ترك المسار فارغًا"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"الجزء الذي يمثل عنوان الملف في المسار. لا حاجة إلى تغيير محتوى هذه الخانة "
|
|
||||||
"عادةً."
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "السيرة"
|
msgstr "السيرة"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "الموقع الإلكتروني"
|
msgstr "الموقع الإلكتروني"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "يوجد ملف آخر بهذا المسار لدى هذى المستخدم."
|
msgstr "يوجد ملف آخر بهذا المسار لدى هذى المستخدم."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثناء العملية."
|
msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثناء العملية."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية."
|
msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "الملف"
|
msgstr "الملف"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "وصف هذا العمل."
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "يجب أن تضع ملفًا."
|
msgstr "يجب أن تضع ملفًا."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "لا يبدو أن هذا الملف صورة!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "يا سلام! نُشرَت!"
|
msgstr "يا سلام! نُشرَت!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "صورة قزم مرتبك"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "ويحي!"
|
msgstr "ويحي!"
|
||||||
|
|
||||||
@@ -163,33 +221,30 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"إن كنت متأكدًا من صحة العنوان فربما تكون الصفحة التي تريدها نُقلت أو حُذفت."
|
"إن كنت متأكدًا من صحة العنوان فربما تكون الصفحة التي تريدها نُقلت أو حُذفت."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "صورة قزم مرتبك"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "غنو ميدياغوبلن"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "شعار ميدياغوبلن"
|
msgstr "شعار ميدياغوبلن"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "أرسل وسائط"
|
msgid "Add media"
|
||||||
|
msgstr "أضف وسائط"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "أكّد بريدك"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "لِج"
|
msgstr "لِج"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -199,81 +254,53 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "مرحبًا بكم يا محبي الوسائط! ميدياغوبلن هو..."
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "المكان الأنسب لوسائطك!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr "مكان يجتمع فيه الناس ليتعاونوا ويعرضوا إبداعاتهم الأصلية والمقتبسة!"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr ""
|
||||||
"after all.)"
|
|
||||||
msgstr "مشروع حر، فنحن أحد مشاريع <a href=\"http://gnu.org\">غنو</a>."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr "مشروع يحاول جعل عالمنا أفضل عن طريق اللامركزية (قريبًا!)."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"جاهز للتمدد. (سيُضاف دعم أنساق كثيرة من الوسائط قريبًا، كما سندعم الفيديو!)."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">أنشئ حسابًا مجانيًا</a>\n"
|
|
||||||
" أو\n"
|
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">ركّب ميدياغوبلن على خادومك الخاص</a>"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "أحدث الوسائط"
|
msgstr "أحدث الوسائط"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "أدخل كلمة سرك الجديدة"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr "أدخل اسم المستخدم أو بريدك الإلكتروني"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr "لقد غُيرت كلمة سرك. جرّب الولوج الآن."
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid ""
|
msgid "Send instructions"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
msgstr ""
|
||||||
msgstr "تفقد بريدك الإلكتروني. لقد أرسلنا رسالة بها وصلة لتغيير كلمة سرك."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -300,27 +327,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "فشل الولوج!"
|
msgstr "فشل الولوج!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "ألا تملك حسابًا بعد؟"
|
msgstr "ألا تملك حسابًا بعد؟"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "أنشئ حسابًا هنا!"
|
msgstr "أنشئ حسابًا هنا!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "أنسيت كلمة سرك؟"
|
msgstr "أنسيت كلمة سرك؟"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "غيّرها!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "أنشئ حسابًا!"
|
msgstr "أنشئ حسابًا!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "أنشئ"
|
msgstr "أنشئ"
|
||||||
|
|
||||||
@@ -352,36 +375,114 @@ msgid "Cancel"
|
|||||||
msgstr "ألغِ"
|
msgstr "ألغِ"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "احفظ التغييرات"
|
msgstr "احفظ التغييرات"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "تحرير ملف %(username)s الشخصي"
|
msgstr "تحرير ملف %(username)s الشخصي"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "الوسائط الموسومة ب"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "انشر وسائطك"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "أرسل"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "وسائط <a href=\"%(user_url)s\">%(username)s</a>"
|
msgstr "وسائط <a href=\"%(user_url)s\">%(username)s</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاسم."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -413,35 +514,45 @@ msgstr "لا توجد وسائط تحت المعالجة"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "فشلت معالجة هذه الملفات:"
|
msgstr "فشلت معالجة هذه الملفات:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "ملف %(username)s الشخصي"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاسم."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "يجب التحقق من البريد الإلكتروني"
|
msgstr "يجب التحقق من البريد الإلكتروني"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "أوشكنا على الانتهاء! ما زال حسابك بحاجة إلى التفعيل."
|
msgstr "أوشكنا على الانتهاء! ما زال حسابك بحاجة إلى التفعيل."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr "ستصلك رسالة إلكترونية خلال لحظات بها التعليمات."
|
msgstr "ستصلك رسالة إلكترونية خلال لحظات بها التعليمات."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "إن لم تصل."
|
msgstr "إن لم تصل."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "أعد إرسال رسالة التحقق"
|
msgstr "أعد إرسال رسالة التحقق"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr "سجّل أحدهم حسابًا بهذا الاسم، ولكننا بانتظار التفعيل حتى الآن."
|
msgstr "سجّل أحدهم حسابًا بهذا الاسم، ولكننا بانتظار التفعيل حتى الآن."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -450,40 +561,36 @@ msgstr ""
|
|||||||
"إن كنت أنت ذلك الشخص لكنك فقدت رسالة التحقق، يمكنك <a "
|
"إن كنت أنت ذلك الشخص لكنك فقدت رسالة التحقق، يمكنك <a "
|
||||||
"href=\"%(login_url)s\">الولوج</a> وإعادة إرسالها."
|
"href=\"%(login_url)s\">الولوج</a> وإعادة إرسالها."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "ملف %(username)s الشخصي"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك."
|
msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "حرِّر الملف الشخصي"
|
msgstr "حرِّر الملف الشخصي"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "لم يعبئ هذا العضو بيانات ملفه بعد."
|
msgstr "لم يعبئ هذا العضو بيانات ملفه بعد."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "أظهِر كل وسائط %(username)s"
|
msgstr "أظهِر كل وسائط %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد."
|
msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "أضف وسائط"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..."
|
msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..."
|
||||||
|
|
||||||
@@ -495,31 +602,57 @@ msgstr ""
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "الأحدث"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "الأقدم"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "علِّق"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "أنا متأكد من رغبتي بحذف هذا العمل"
|
msgstr "أنا متأكد من رغبتي بحذف هذا العمل"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr "أنت على وشك حذف وسائط مستخدم آخر. كن حذرًا أثناء العملية."
|
msgstr "أنت على وشك حذف وسائط مستخدم آخر. كن حذرًا أثناء العملية."
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,15 +1,16 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
|
# Al fred <devaleitzer@aim.com>, 2011.
|
||||||
# <devaleitzer@aim.com>, 2011.
|
# <devaleitzer@aim.com>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,27 +20,19 @@ msgstr ""
|
|||||||
"Language: ca\n"
|
"Language: ca\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Aquest tipus de fitxer no és vàlid."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nom d'usuari"
|
msgstr "Nom d'usuari"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contrasenya"
|
msgstr "Contrasenya"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Les contrasenyes han de coincidir"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Confirmeu la contrasenya"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Adreça electrònica"
|
msgstr "Adreça electrònica"
|
||||||
|
|
||||||
@@ -52,10 +45,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Lamentablement aquest usuari ja existeix."
|
msgstr "Lamentablement aquest usuari ja existeix."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Disculpeu, aquesta adreça electrònica ja s'està utilitzant."
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -63,87 +56,155 @@ msgstr ""
|
|||||||
"Ja s'ha verificat la vostra adreça electrònica. Ara podeu entrar, editar el "
|
"Ja s'ha verificat la vostra adreça electrònica. Ara podeu entrar, editar el "
|
||||||
"vostre perfil i penjar imatge!"
|
"vostre perfil i penjar imatge!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La clau de verificació o la identificació de l'usuari no són correctes."
|
"La clau de verificació o la identificació de l'usuari no són correctes."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Torna'm a enviar el correu de verificació"
|
msgstr "Torna'm a enviar el correu de verificació"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Títol"
|
msgstr "Títol"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Etiquetes"
|
msgstr "Etiquetes"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Biografia"
|
msgstr "Biografia"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Lloc web"
|
msgstr "Lloc web"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "Esteu editant fitxers d'un altre usuari. Aneu amb compte."
|
msgstr "Esteu editant fitxers d'un altre usuari. Aneu amb compte."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Esteu editant el perfil d'un usuari. Aneu amb compte"
|
msgstr "Esteu editant el perfil d'un usuari. Aneu amb compte"
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "Aquest tipus de fitxer no és vàlid."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Fitxer"
|
msgstr "Fitxer"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Heu d'escollir un fitxer."
|
msgstr "Heu d'escollir un fitxer."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "El fitxer no és una imatge"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Visca! S'ha enviat!"
|
msgstr "Visca! S'ha enviat!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Imatge de la pantalla 404, el goblin no sap què fer..."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Ups!"
|
msgstr "Ups!"
|
||||||
|
|
||||||
@@ -159,33 +220,30 @@ msgstr ""
|
|||||||
"Si esteu convençut que l'adreça és correcta, pot ser que la pàgina que "
|
"Si esteu convençut que l'adreça és correcta, pot ser que la pàgina que "
|
||||||
"cerqueu s'hagi canviat d'ubicació o s'hagi eliminat."
|
"cerqueu s'hagi canviat d'ubicació o s'hagi eliminat."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "Logo de mediagoblin"
|
msgstr "Logo de mediagoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Envia fitxers"
|
msgid "Add media"
|
||||||
|
msgstr "Tots els fitxers"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "verifiqueu el correu electrònic"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Entra"
|
msgstr "Entra"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -195,85 +253,52 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Ei, fanàtic multimèdia! MediaGoblin és..."
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "El lloc fitxer pels teus fitxers!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un lloc en el qual les persones poden col·laborar i mostrar les seves "
|
|
||||||
"creacions originals o obres derivades."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Amb l'objectiu de fer del món un lloc millor a través de la "
|
|
||||||
"descentralització i (eventualment, aviat disponible!) La federació!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Construït per l'ampliació. (Múltiples tipus de fitxers en breu amb el "
|
|
||||||
"programari, incloent el suport de vídeo!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Desenvolupat per persones com vostè. ( <a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\"> Podeu ajudar a millorar "
|
|
||||||
"aquest programari!</a> )"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid ""
|
msgid "Send instructions"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
@@ -294,27 +319,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Inici de sessió ha fallat!"
|
msgstr "Inici de sessió ha fallat!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Encara no teniu un compte?"
|
msgstr "Encara no teniu un compte?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Creeu-ne un aquí!"
|
msgstr "Creeu-ne un aquí!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Creeu un compte!"
|
msgstr "Creeu un compte!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Crea"
|
msgstr "Crea"
|
||||||
|
|
||||||
@@ -346,36 +367,114 @@ msgid "Cancel"
|
|||||||
msgstr "Cancel·la"
|
msgstr "Cancel·la"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Desa els canvis"
|
msgstr "Desa els canvis"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Etiquetat amb:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Envieu els vostres fitxers"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Envia"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgstr "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Lamentablement no s'ha trobat l'usuari que cercàveu."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -397,7 +496,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
|
||||||
msgid "Media in-processing"
|
msgid "Media in-processing"
|
||||||
msgstr ""
|
msgstr "S'està processant el fitxer"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
|
||||||
msgid "No media in-processing"
|
msgid "No media in-processing"
|
||||||
@@ -405,37 +504,49 @@ msgstr ""
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
|
msgstr "No s'han pogut penjar els següents fitxers:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Lamentablement no s'ha trobat l'usuari que cercàveu."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr ""
|
msgstr "Cal que verifiqueu l'adreça electrònica"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr ""
|
msgstr "Gairebé esteu! Tan sols falta que activeu el vostre compte"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr "Us hauria d'arribar un correu amb les instruccions per a fer-ho."
|
msgstr "Us hauria d'arribar un correu amb les instruccions per a fer-ho."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr ""
|
msgstr "Per si no hi fos:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Torna'm a enviar el correu de verificació"
|
msgstr "Torna'm a enviar el correu de verificació"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Algú ja ha registrat un compte amb aquest nom d'usuari, però encara l'ha "
|
||||||
|
"d'activar."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -444,76 +555,98 @@ msgstr ""
|
|||||||
"Si siu aqeust usuari però heu perdut el correu de verificació, podeu <a "
|
"Si siu aqeust usuari però heu perdut el correu de verificació, podeu <a "
|
||||||
"href=\"%(login_url)s\">entrar</a> i tornar-lo a enviar."
|
"href=\"%(login_url)s\">entrar</a> i tornar-lo a enviar."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Edita el perfil"
|
msgstr "Edita el perfil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
|
msgstr "Aquest usuari encara no ha escrit res al seu perfil."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "View all of %(username)s's media"
|
msgstr "View all of %(username)s's media"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
||||||
msgid "feed icon"
|
msgid "feed icon"
|
||||||
msgstr ""
|
msgstr "Icona RSS"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Comentari"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,12 +1,14 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# <benjamin@lebsanft.org>, 2011.
|
# <benjamin@lebsanft.org>, 2011.
|
||||||
# <cwebber@dustycloud.org>, 2011.
|
# <cwebber@dustycloud.org>, 2011.
|
||||||
# Elrond <elrond+mediagoblin.org@samba-tng.org>, 2011.
|
# Elrond <elrond+mediagoblin.org@samba-tng.org>, 2011.
|
||||||
|
# <jakob.kramer@gmx.de>, 2011.
|
||||||
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 2011.
|
# Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>, 2011.
|
||||||
|
# Jan-Christoph Borchardt <jan@unhosted.org>, 2011.
|
||||||
# <kyoo@kyoo.ch>, 2011.
|
# <kyoo@kyoo.ch>, 2011.
|
||||||
# <mediagoblin.org@samba-tng.org>, 2011.
|
# <mediagoblin.org@samba-tng.org>, 2011.
|
||||||
# Rafael Maguiña <rafael.maguina@gmail.com>, 2011.
|
# Rafael Maguiña <rafael.maguina@gmail.com>, 2011.
|
||||||
@@ -15,8 +17,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n"
|
"Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -26,134 +28,193 @@ msgstr ""
|
|||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Benutzername"
|
msgstr "Benutzername"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Passwörter müssen übereinstimmen."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Passwort wiederholen"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Email-Adresse"
|
msgstr "E-Mail-Adresse"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:55
|
#: mediagoblin/auth/views.py:55
|
||||||
msgid "Sorry, registration is disabled on this instance."
|
msgid "Sorry, registration is disabled on this instance."
|
||||||
msgstr "Registrierung ist auf dieser Instanz leider deaktiviert."
|
msgstr "Das Registrieren ist auf dieser Instanz leider deaktiviert."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:73
|
#: mediagoblin/auth/views.py:73
|
||||||
msgid "Sorry, a user with that name already exists."
|
msgid "Sorry, a user with that name already exists."
|
||||||
msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen."
|
msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet."
|
msgstr "Leider gibt es bereits einen Benutzer mit dieser E-Mail-Adresse."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein "
|
"Deine E-Mail-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein "
|
||||||
"Profil bearbeiten und Bilder hochladen!"
|
"Profil bearbeiten und Bilder hochladen!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch."
|
msgstr "Der Bestätigungsschlüssel oder die Nutzernummer ist falsch."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr "Du musst angemeldet sein, damit wir wissen, wer die Email bekommt."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Deine E-Mail-Adresse wurde bereits bestätigt."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Bestätigungs-Email wurde erneut versandt."
|
msgstr "Bestätigungs-E-Mail wurde erneut versandt."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Konnte Email zur Wiederherstellung des Passworts nicht senden, weil dein "
|
"E-Mail zur Wiederherstellung des Passworts konnte nicht gesendet werden, "
|
||||||
"Benutzername inaktiv oder deine Email-Adresse noch nicht verifiziert ist."
|
"weil dein Benutzername inaktiv oder deine E-Mail-Adresse noch nicht "
|
||||||
|
"verifiziert ist."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titel"
|
msgstr "Titel"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Beschreibung des Werkes"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Markierungen"
|
msgstr "Markierungen"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Kurztitel"
|
msgstr "Kurztitel"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "Bitte gib einen Kurztitel ein"
|
msgstr "Bitte gib einen Kurztitel ein"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Der Titelteil der Medienadresse. Normalerweise muss hier nichts geändert "
|
|
||||||
"werden."
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Biographie"
|
msgstr "Biographie"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Webseite"
|
msgstr "Webseite"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "Altes Passwort"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Diesen Kurztitel hast du bereits vergeben."
|
msgstr "Diesen Kurztitel hast du bereits vergeben."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig."
|
msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig."
|
msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr "Falsches Passwort"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Datei"
|
msgstr "Datei"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Beschreibung des Werkes"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Du musst eine Datei angeben."
|
msgstr "Du musst eine Datei angeben."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "Diese Datei scheint kein Bild zu sein!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Yeeeaaah! Geschafft!"
|
msgstr "Yeeeaaah! Geschafft!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Bild eines angespannten Goblins"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Hoppla!"
|
msgstr "Hoppla!"
|
||||||
|
|
||||||
@@ -169,33 +230,30 @@ msgstr ""
|
|||||||
"Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell "
|
"Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell "
|
||||||
"verschoben oder gelöscht."
|
"verschoben oder gelöscht."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Bild eines angespannten Goblins"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "MediaGoblin-Logo"
|
msgstr "MediaGoblin-Logo"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Medien hochladen"
|
msgid "Add media"
|
||||||
|
msgstr "Medien hinzufügen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "Bitte bestätige deine Email-Adresse!"
|
msgstr "Bitte bestätige deine E-Mail-Adresse!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "Abmelden"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -207,93 +265,57 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr "Entdecke"
|
msgstr "Entdecke"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Hallo Medien-Liebhaber! MediaGoblin ist …"
|
msgstr "Hallo du, willkommen auf dieser MediaGoblin-Seite!"
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
"Diese Seite läuft mit <a href=\"http://mediagoblin.org\">MediaGoblin</a>, "
|
||||||
|
"einer großartigen Software für Medienhosting."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "Der perfekte Platz für deine Medien!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ein Platz für Zusammenarbeit und um Originale und abgeleitete Werke zu "
|
"Melde dich mit deinem MediaGoblin-Konto an, um eigene Medien hinzuzufügen, "
|
||||||
"präsentieren!"
|
"zu kommentieren, Favoriten zu speichern und mehr."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "Hast du noch keinen? Das geht ganz einfach!"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
"Frei, wie in Freiheit. (Wir sind schließlich ein <a "
|
|
||||||
"href=\"http://gnu.org\">GNU</a>-Projekt.)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Weltverbesserer durch Dezentralisierung und (hoffentlich bald!) unabhängige "
|
|
||||||
"Kommunikation!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Gebaut für Erweiterungen. (Bald mit Unterstützung für verschiedene "
|
|
||||||
"Medientypen inklusive Videos!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Betrieben von Leuten wie dir. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">Du kannst uns dabei helfen, "
|
|
||||||
"die Software zu verbessern!</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Neugierig dich uns anzuschliessen?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Gratis ein Konto einrichten</a>\n"
|
|
||||||
" or\n"
|
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">MediaGoblin auf deinem eigenen Server einrichten</a>"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "Neuste Medien"
|
msgstr "Neuste Medien"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Neues Passwort eingeben"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
|
||||||
msgid "Enter your username or email"
|
|
||||||
msgstr "Benutzername oder Email-Adresse eingeben"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
|
||||||
msgid "Your password has been changed. Try to log in now."
|
|
||||||
msgstr "Dein Passwort wurde geändert. Versuche dich jetzt einzuloggen."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
|
||||||
msgid ""
|
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Prüfe deinen Posteingang. Wir haben dir eine Email geschickt mit einer URL, "
|
|
||||||
"um dein Passwort zu ändern."
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
|
msgid "Set password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Passwort wiederherstellen"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Anleitung senden"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -314,33 +336,29 @@ msgstr ""
|
|||||||
"\n"
|
"\n"
|
||||||
"%(verification_url)s\n"
|
"%(verification_url)s\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Wenn du denkst, dass das ein Fehler ist, ignoriere einfach diese Email und bleib ein glücklicher Goblin!"
|
"Wenn du denkst, dass das ein Fehler ist, ignoriere einfach diese E-Mail und bleib ein glücklicher Goblin!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Anmeldevorgang fehlgeschlagen!"
|
msgstr "Anmeldevorgang fehlgeschlagen!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Hast du noch kein Konto?"
|
msgstr "Hast du noch kein Konto?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Registriere dich hier!"
|
msgstr "Registriere dich hier!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Passwort vergessen?"
|
msgstr "Passwort vergessen?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "Wechsle es!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Neues Konto registrieren!"
|
msgstr "Neues Konto registrieren!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Registrieren"
|
msgstr "Registrieren"
|
||||||
|
|
||||||
@@ -356,7 +374,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Hallo %(username)s,\n"
|
"Hallo %(username)s,\n"
|
||||||
"\n"
|
"\n"
|
||||||
"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in einem Webbrowser öffnen:\n"
|
"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in deinem Webbrowser öffnen:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(verification_url)s"
|
"%(verification_url)s"
|
||||||
|
|
||||||
@@ -371,36 +389,114 @@ msgid "Cancel"
|
|||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Änderungen speichern"
|
msgstr "Änderungen speichern"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "%(username)ss Profil bearbeiten"
|
msgstr "%(username)ss Profil bearbeiten"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Medien markiert mit:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "Medien markiert mit: %(tag_name)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Original"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Medien hochladen"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Bestätigen"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr "%(username)ss Medien"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "<a href=\"%(user_url)s\">%(username)s</a>s Medien"
|
msgstr "<a href=\"%(user_url)s\">%(username)s</a>s Medien"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Dieser Benutzer wurde leider nicht gefunden."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Löschen"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr "bei"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -434,31 +530,41 @@ msgstr "Keine Medien in Bearbeitung"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Die folgenden Uploads sind fehlgeschlagen:"
|
msgstr "Die folgenden Uploads sind fehlgeschlagen:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
msgid "Email verification needed"
|
#, python-format
|
||||||
msgstr "Email-Bestätigung benötigt"
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "%(username)ss Profil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
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"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden."
|
msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Gleich solltest du eine Email bekommen, die dir sagt, was du noch machen "
|
"Gleich solltest du eine E-Mail erhalten, die dir erklärt, was du noch machen"
|
||||||
" musst."
|
" musst."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Wenn sie nicht ankommt:"
|
msgstr "Wenn sie nicht ankommt:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Bestätigung erneut senden"
|
msgstr "Bestätigung erneut senden"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -466,7 +572,7 @@ msgstr ""
|
|||||||
"Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber es "
|
"Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber es "
|
||||||
"muss noch aktiviert werden."
|
"muss noch aktiviert werden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -476,40 +582,36 @@ msgstr ""
|
|||||||
" kannst du dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut "
|
" kannst du dich <a href=\"%(login_url)s\">anmelden</a> und sie erneut "
|
||||||
"senden."
|
"senden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "%(username)ss Profil"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Hier kannst du Anderen etwas über dich erzählen."
|
msgstr "Hier kannst du Anderen etwas über dich erzählen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Profil bearbeiten"
|
msgstr "Profil bearbeiten"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil."
|
msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Alle Medien von %(username)s anschauen"
|
msgstr "Alle Medien von %(username)s anschauen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast."
|
msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Medien hinzufügen"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Scheinbar gibt es hier noch nichts …"
|
msgstr "Scheinbar gibt es hier noch nichts …"
|
||||||
|
|
||||||
@@ -521,31 +623,59 @@ msgstr "Feed-Symbol"
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom-Feed"
|
msgstr "Atom-Feed"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Neuere"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Ältere"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Kommentar"
|
msgstr "Zu Seite:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Ja, wirklich löschen"
|
msgstr "Ja, wirklich löschen"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Ohh, der Kommentar war leer."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "Dein Kommentar wurde gesendet!"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Du hast das Medium gelöscht."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
"Das Medium wurde nicht gelöscht. Du musst ankreuzen, dass du es wirklich "
|
||||||
|
"löschen möchtest."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig."
|
msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig."
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -17,27 +17,19 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 0.9.6\n"
|
"Generated-By: Babel 0.9.6\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -50,94 +42,164 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your "
|
"Your email address has been verified. You may now login, edit your "
|
||||||
"profile, and submit images!"
|
"profile, and submit images!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid "An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or "
|
"Could not send password recovery email as your username is inactive or "
|
||||||
"your account's email address has not been verified."
|
"your account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid "The title part of this media's URL. You usually don't need to change this."
|
msgid ""
|
||||||
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -151,33 +213,30 @@ msgid ""
|
|||||||
"has been moved or deleted."
|
"has been moved or deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
|
msgid "Add media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -187,78 +246,55 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you"
|
||||||
"creations!"
|
" can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project,"
|
|
||||||
" after all.)"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the "
|
|
||||||
"software, including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve "
|
|
||||||
"this software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a "
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an "
|
||||||
"free account</a>\n"
|
"account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" "
|
" <a class=\"button_action\" "
|
||||||
"href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on "
|
"href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on "
|
||||||
"your own server</a>"
|
"your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid "Check your inbox. We sent an email with a URL for changing your password."
|
msgid "Send instructions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
@@ -279,27 +315,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -325,35 +357,113 @@ msgid "Cancel"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> "
|
||||||
|
"for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
@@ -385,74 +495,80 @@ msgstr ""
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid "An email should arrive in a few moments with instructions on how to do so."
|
msgid "An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to"
|
"Someone has registered an account with this username, but it still has to"
|
||||||
" be activated."
|
" be activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can "
|
"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."
|
"<a href=\"%(login_url)s\">log in</a> and resend it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -464,31 +580,57 @@ msgstr ""
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -10,8 +10,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -21,27 +21,19 @@ msgstr ""
|
|||||||
"Language: eo\n"
|
"Language: eo\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "La provizita dosiero ne konformas al la informtipo."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Uzantnomo"
|
msgstr "Uzantnomo"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Pasvorto"
|
msgstr "Pasvorto"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Pasvortoj devas esti egalaj."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Retajpu pasvorton"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr "Retajpu ĝin por certigi, ke ne okazis mistajpoj."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Retpoŝtadreso"
|
msgstr "Retpoŝtadreso"
|
||||||
|
|
||||||
@@ -54,10 +46,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas."
|
msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Tiu retpoŝtadreso jam estas uzata."
|
msgstr "Ni bedaŭras, sed konto kun tiu retpoŝtadreso jam ekzistas."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -65,15 +57,28 @@ msgstr ""
|
|||||||
"Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian "
|
"Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian "
|
||||||
"profilon, kaj alŝuti bildojn!"
|
"profilon, kaj alŝuti bildojn!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta"
|
msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr "Vi devas esti ensalutita, por ke ni sciu, al kiu sendi la retleteron!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Vi jam konfirmis vian retpoŝtadreson!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Resendi vian kontrol-mesaĝon."
|
msgstr "Resendi vian kontrol-mesaĝon."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
@@ -81,74 +86,127 @@ msgstr ""
|
|||||||
"Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, "
|
"Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, "
|
||||||
"aŭ ĝia retpoŝtadreso ne estis konfirmita."
|
"aŭ ĝia retpoŝtadreso ne estis konfirmita."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titolo"
|
msgstr "Titolo"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Priskribo de ĉi tiu verko"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Etikedoj"
|
msgstr "Etikedoj"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "La distingiga adresparto"
|
msgstr "La distingiga adresparto"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "La distingiga adresparto ne povas esti malplena"
|
msgstr "La distingiga adresparto ne povas esti malplena"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La parto de la dosieradreso, bazita sur la dosiertitolo. Ordinare ne necesas"
|
|
||||||
" ĝin ŝanĝi."
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Bio"
|
msgstr "Bio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Retejo"
|
msgstr "Retejo"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "La malnova pasvorto"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto."
|
msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme."
|
msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme."
|
msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "La provizita dosiero ne konformas al la informtipo."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr "Malĝusta pasvorto"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Dosiero"
|
msgstr "Dosiero"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Priskribo de ĉi tiu verko"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Vi devas provizi dosieron."
|
msgstr "Vi devas provizi dosieron."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "La dosiero ŝajnas ne esti bildo!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Hura! Alŝutitas!"
|
msgstr "Hura! Alŝutitas!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Bildo de 404-koboldo penŝvitanta."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Oj!"
|
msgstr "Oj!"
|
||||||
|
|
||||||
@@ -164,33 +222,30 @@ msgstr ""
|
|||||||
"Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo "
|
"Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo "
|
||||||
"estis movita aŭ forigita."
|
"estis movita aŭ forigita."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Bildo de 404-koboldo penŝvitanta."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "Emblemo de MediaGoblin"
|
msgstr "Emblemo de MediaGoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Alŝuti aŭd-vid-dosieron"
|
msgid "Add media"
|
||||||
|
msgstr "Aldoni dosieron"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "konfirmu vian retpoŝtadreson! "
|
msgstr "Konfirmu viecon de la retpoŝtadreso!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "elsaluti"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Ensaluti"
|
msgstr "Ensaluti"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -200,93 +255,60 @@ msgstr ""
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:24
|
#: mediagoblin/templates/mediagoblin/root.html:24
|
||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr "Ĉirkaŭrigardi"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Saluton, artemulo! MediaGoblin estas…"
|
msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!"
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
"Ĉi tiu retpaĝaro funkcias per <a "
|
||||||
|
"href=\"http://mediagoblin.org\">MediaGoblin</a>, eksterordinare bonega "
|
||||||
|
"programaro por gastigado de aŭd‐vid‐dosieroj."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "La perfekta loko por viaj aŭd-vid-dosieroj!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Loko, kie homoj povas kunlabori, kaj elmeti originalajn kreaĵojn kaj "
|
"Por aldoni viajn proprajn dosierojn, fari al vi liston de la plej plaĉaj, "
|
||||||
"derivaĵojn!"
|
"ks, vi povas ensaluti je via MediaGoblina konto."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "Ĉu vi ankoraŭ ne havas tian? Ne malĝoju!"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
"Libera verko. (Ni ja estas projekto de <a href=\"http://gnu.org\">GNU</a>.)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Celanta plibonigi la mondon per sencentreco kaj (iam, baldaŭ!) federateco!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Kreita por etendado. (Baldaŭ en la programo aperos subteno de pluraj "
|
|
||||||
"informspecoj, inkluzive de filmoj!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Vivanta per homoj kiel vi. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">Vi povas helpi al ni "
|
|
||||||
"plibonigi la programon!</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Ĉu vi deziregas aliĝi nin?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Kreu senpagan"
|
|
||||||
" konton</a>⏎ aŭ⏎ <a class=\"header_submit\" "
|
|
||||||
"href=\"http://wiki.mediagoblin.org/HackingHowto\">Kreu senpagan konton</a>"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "Plej nove aldonitaj dosieroj"
|
msgstr "Laste aldonitaj dosieroj"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Enigu vian novan pasvorton"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
|
||||||
msgid "Enter your username or email"
|
|
||||||
msgstr "Enigu vian salutnomon aŭ retpoŝtadreson"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
|
||||||
msgid "Your password has been changed. Try to log in now."
|
|
||||||
msgstr "Via pasvorto estis ŝanĝita. Nun provu ensaluti."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
|
||||||
msgid ""
|
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kontrolu vian retleterujon. Ni sendis retleteron kun retadreso por ŝanĝo de "
|
|
||||||
"via pasvorto."
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
|
msgid "Set password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Ekhavo de nova pasvorto"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Sendi instrukcion"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -313,27 +335,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Ensaluto malsukcesis!"
|
msgstr "Ensaluto malsukcesis!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Ĉu ankoraŭ sen konto?"
|
msgstr "Ĉu ankoraŭ sen konto?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Kreu ĝin ĉi tie!"
|
msgstr "Kreu ĝin ĉi tie!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Ĉu vi forgesis vian pasvorton?"
|
msgstr "Ĉu vi forgesis vian pasvorton?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "Ŝanĝu ĝin!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Kreu konton!"
|
msgstr "Kreu konton!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Krei"
|
msgstr "Krei"
|
||||||
|
|
||||||
@@ -364,36 +382,114 @@ msgid "Cancel"
|
|||||||
msgstr "Nuligi"
|
msgstr "Nuligi"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Konservi ŝanĝojn"
|
msgstr "Konservi ŝanĝojn"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Redaktado de l’profilo de %(username)s'"
|
msgstr "Redaktado de l’profilo de %(username)s'"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Dosieroj markitaj per:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "Dosieroj kun etikedo: %(tag_name)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Originalo"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Alŝutu vian aŭd-vid-dosieron"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Alŝuti"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr "Dosieroj de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Dosieroj de <a href=\"%(user_url)s\">%(username)s</a>"
|
msgstr "Dosieroj de <a href=\"%(user_url)s\">%(username)s</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Uzanto ne trovita."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Ŝanĝi"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Forigi"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr "je"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -427,30 +523,40 @@ msgstr "Neniu dosieroj preparatas"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Preparado de ĉi tiuj alŝutaĵoj malsukcesis:"
|
msgstr "Preparado de ĉi tiuj alŝutaĵoj malsukcesis:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "Profilo de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Uzanto ne trovita."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "Necesas konfirmo de retpoŝtadreso"
|
msgstr "Necesas konfirmo de retpoŝtadreso"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Preskaŭ finite! Restas nur validigi vian konton."
|
msgstr "Preskaŭ finite! Restas nur validigi vian konton."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari."
|
"Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Se tio ne okazas:"
|
msgstr "Se tio ne okazas:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Resendi kontrolmesaĝon"
|
msgstr "Resendi kontrolmesaĝon"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -458,7 +564,7 @@ msgstr ""
|
|||||||
"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti "
|
"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti "
|
||||||
"aktivigita."
|
"aktivigita."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -467,41 +573,37 @@ msgstr ""
|
|||||||
"Se vi estas tiu sed vi perdis vian kontrolmesaĝon, vi povas <a "
|
"Se vi estas tiu sed vi perdis vian kontrolmesaĝon, vi povas <a "
|
||||||
"href=\"%(login_url)s\">ensaluti</a> kaj resendi ĝin."
|
"href=\"%(login_url)s\">ensaluti</a> kaj resendi ĝin."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "Profilo de %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Jen estas spaceto por rakonti pri vi al aliaj."
|
msgstr "Jen estas spaceto por rakonti pri vi al aliaj."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Redakti profilon"
|
msgstr "Redakti profilon"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si."
|
msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Rigardi ĉiujn dosierojn de %(username)s'"
|
msgstr "Rigardi ĉiujn dosierojn de %(username)s'"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis."
|
"Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Aldoni dosieron"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…"
|
msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…"
|
||||||
|
|
||||||
@@ -513,31 +615,59 @@ msgstr "flusimbolo"
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom-a informfluo"
|
msgstr "Atom-a informfluo"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Plinovaj"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Malplinovaj"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Komento"
|
msgstr "Iri al paĝo:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Mi estas certa, ke mi volas forigi ĉi tion"
|
msgstr "Mi estas certa, ke mi volas forigi ĉi tion"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Oj, via komento estis malplena."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "Via komento estis afiŝita!"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Vi forigis la dosieron."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
"La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la "
|
||||||
|
"markilo."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema."
|
msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema."
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -10,12 +10,13 @@
|
|||||||
# <juangsub@gmail.com>, 2011.
|
# <juangsub@gmail.com>, 2011.
|
||||||
# <juanma@kde.org.ar>, 2011.
|
# <juanma@kde.org.ar>, 2011.
|
||||||
# Mario Rodriguez <msrodriguez00@gmail.com>, 2011.
|
# Mario Rodriguez <msrodriguez00@gmail.com>, 2011.
|
||||||
|
# <mu@member.fsf.org>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n"
|
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -25,28 +26,19 @@ msgstr ""
|
|||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Archivo inválido para el formato seleccionado."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nombre de usuario"
|
msgstr "Nombre de usuario"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contraseña"
|
msgstr "Contraseña"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Las contraseñas deben coincidir."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Confirma tu contraseña"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
"Escriba de nuevo aquí para asegurarse de que no hay faltas de ortografía."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Dirección de correo electrónico"
|
msgstr "Dirección de correo electrónico"
|
||||||
|
|
||||||
@@ -59,10 +51,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Lo sentimos, ya existe un usuario con ese nombre."
|
msgstr "Lo sentimos, ya existe un usuario con ese nombre."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Lo sentimos, esa dirección de correo electrónico ya ha sido tomada."
|
msgstr "Lo sentimos, ya existe un usuario con esa dirección de email."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -70,16 +62,31 @@ msgstr ""
|
|||||||
"Tu dirección de correo electrónico ha sido verificada. ¡Ahora puedes "
|
"Tu dirección de correo electrónico ha sido verificada. ¡Ahora puedes "
|
||||||
"ingresar, editar tu perfil, y enviar imágenes!"
|
"ingresar, editar tu perfil, y enviar imágenes!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La clave de verificación o la identificación de usuario son incorrectas"
|
"La clave de verificación o la identificación de usuario son incorrectas"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
"¡Debes iniciar sesión para que podamos saber a quién le enviamos el correo "
|
||||||
|
"electrónico!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "¡Ya has verificado tu dirección de correo!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Se reenvió tu correo electrónico de verificación."
|
msgstr "Se reenvió tu correo electrónico de verificación."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
@@ -88,76 +95,129 @@ msgstr ""
|
|||||||
"porque su nombre de usuario está inactivo o la dirección de su cuenta de "
|
"porque su nombre de usuario está inactivo o la dirección de su cuenta de "
|
||||||
"correo electrónico no ha sido verificada."
|
"correo electrónico no ha sido verificada."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Título"
|
msgstr "Título"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Descripción de esta obra"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Etiquetas"
|
msgstr "Etiquetas"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Ficha"
|
msgstr "Ficha"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "La ficha no puede estar vacía"
|
msgstr "La ficha no puede estar vacía"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La parte del título de la URL de este contenido. Normalmente no necesitas "
|
|
||||||
"cambiar esto."
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Bio"
|
msgstr "Bio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Sitio web"
|
msgstr "Sitio web"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "Vieja contraseña"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Una entrada con esa ficha ya existe para este usuario."
|
msgstr "Una entrada con esa ficha ya existe para este usuario."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "Estás editando el contenido de otro usuario. Proceder con precaución."
|
msgstr "Estás editando el contenido de otro usuario. Proceder con precaución."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Estás editando un perfil de usuario. Proceder con precaución."
|
msgstr "Estás editando un perfil de usuario. Proceder con precaución."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "Archivo inválido para el formato seleccionado."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr "Contraseña incorrecta"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Archivo"
|
msgstr "Archivo"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Descripción de esta obra"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Debes proporcionar un archivo."
|
msgstr "Debes proporcionar un archivo."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "¡El archivo no parece ser una imagen!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "¡Woohoo! ¡Enviado!"
|
msgstr "¡Yujú! ¡Enviado!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Imagen de 404 goblin estresándose"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Ups!"
|
msgstr "¡Ups!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:24
|
#: mediagoblin/templates/mediagoblin/404.html:24
|
||||||
msgid "There doesn't seem to be a page at this address. Sorry!"
|
msgid "There doesn't seem to be a page at this address. Sorry!"
|
||||||
@@ -171,33 +231,30 @@ msgstr ""
|
|||||||
"Si estás seguro que la dirección es correcta, puede ser que la pagina haya "
|
"Si estás seguro que la dirección es correcta, puede ser que la pagina haya "
|
||||||
"sido movida o borrada."
|
"sido movida o borrada."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Imagen de 404 goblin estresándose"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "Logo de MediaGoblin"
|
msgstr "Logo de MediaGoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Enviar contenido"
|
msgid "Add media"
|
||||||
|
msgstr "Añadir contenido"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "¡Verifica tu correo electrónico!"
|
msgstr "¡Verifica tu email!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "Cerrar sesión"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Conectarse"
|
msgstr "Conectarse"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -209,93 +266,58 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr "Explorar"
|
msgstr "Explorar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "¡Hola, amante de los contenidos! MediaGoblin es ..."
|
msgstr "Hola, ¡bienvenido a este sitio de 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 ""
|
||||||
|
"Este sitio está montado con <a "
|
||||||
|
"href=\"http://mediagoblin.org\">MediaGoblin</a>, un programa libre buenísimo"
|
||||||
|
" para gestionar contenido multimedia."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "¡El lugar ideal para tus contenidos!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"¡Un lugar para colaborar y exhibir tus creaciones originales y derivadas!"
|
"Para añadir tus propios contenidos, dejar comentarios, guardar tus favoritos"
|
||||||
|
" y más, puedes iniciar sesión con tu cuenta de MediaGoblin."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "¿Aún no tienes una? ¡Es fácil!"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
"Libre, como en la libertad. (Somos parte del proyecto <a "
|
|
||||||
"href=\"http://gnu.org\">GNU</a> después de todo.)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Queriendo hacer del mundo un mejor lugar a través de la descentralización y "
|
|
||||||
"(eventualmente, muy pronto!) la federalización!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Pensado para ser extensible. (Prontamente soporte para multiples formatos, "
|
|
||||||
"incluyendo video!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Impulsado por gente como vos. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\"> Vos podés ayudarnos a "
|
|
||||||
"mejorar este programa</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Te gustaría unirte a nosotros?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Crea una "
|
|
||||||
"cuenta gratuita</a> o <a class=\"header_submit\" "
|
|
||||||
"href=\"http://wiki.mediagoblin.org/HackingHowto\">Establece MediaGoblin en "
|
|
||||||
"tu propio servidor</a>"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "El contenido más reciente"
|
msgstr "El contenido más reciente"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Ingrese su nueva contraseña"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
|
||||||
msgid "Enter your username or email"
|
|
||||||
msgstr "Introduzca su nombre de usuario o correo electrónico"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
|
||||||
msgid "Your password has been changed. Try to log in now."
|
|
||||||
msgstr "Se cambió tu contraseña. Intenta iniciar sesión ahora."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
|
||||||
msgid ""
|
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Revisa tu bandeja de entrada. Te enviamos un correo electrónico con una URL "
|
|
||||||
"para cambiar tu contraseña."
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
|
msgid "Set password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Recuperar contraseña"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Enviar instrucciones"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -310,36 +332,35 @@ msgid ""
|
|||||||
"If you think this is an error, just ignore this email and continue being\n"
|
"If you think this is an error, just ignore this email and continue being\n"
|
||||||
"a happy goblin!"
|
"a happy goblin!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hola %(username)s , para cambiar su contraseña de GNU MediaGoblin, abra la "
|
"Hola %(username)s,\n"
|
||||||
"siguiente URL en su navegador: %(verification_url)s Si usted piensa que "
|
"\n"
|
||||||
"esto es un error, simplemente ignore este mensaje y siga siendo un duende "
|
"Para cambiar tu contraseña de GNU MediaGoblin, abre la siguiente URL en un navegador:\n"
|
||||||
"feliz!"
|
"\n"
|
||||||
|
"%(verification_url)s \n"
|
||||||
|
"\n"
|
||||||
|
"Si piensas que esto es un error, simplemente ignora este mensaje y sigue siendo un trasgo feliz."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "¡Falló el inicio de sesión!"
|
msgstr "¡Falló el inicio de sesión!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "¿No tienes una cuenta?"
|
msgstr "¿No tienes una cuenta?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "¡Crea una aquí!"
|
msgstr "¡Crea una aquí!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "¿Olvidaste tu contraseña?"
|
msgstr "¿Olvidaste tu contraseña?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "Cambiarlo!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "¡Crea una cuenta!"
|
msgstr "¡Crea una cuenta!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Crear"
|
msgstr "Crear"
|
||||||
|
|
||||||
@@ -362,7 +383,7 @@ msgstr ""
|
|||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(media_title)s"
|
msgid "Editing %(media_title)s"
|
||||||
msgstr "Edición %(media_title)s "
|
msgstr "Editando %(media_title)s "
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:36
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:36
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49
|
||||||
@@ -370,41 +391,119 @@ msgid "Cancel"
|
|||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Guardar cambios"
|
msgstr "Guardar cambios"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Editando el perfil de %(username)s"
|
msgstr "Editando el perfil de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Contenido etiquetado con:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "Contenido etiquetado con: %(tag_name)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Original"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Envía tu contenido"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Enviar"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr "Contenidos de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Contenido de <a href=\"%(user_url)s\">%(username)s</a>'s"
|
msgstr "Contenido de <a href=\"%(user_url)s\">%(username)s</a>'s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Lo sentimos, no se encontró ese usuario."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Borrar"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr "en"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Really delete %(title)s?"
|
msgid "Really delete %(title)s?"
|
||||||
msgstr "Realmente deseas eliminar %(title)s ?"
|
msgstr "¿Realmente deseas eliminar %(title)s?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
||||||
msgid "Delete Permanently"
|
msgid "Delete Permanently"
|
||||||
@@ -433,31 +532,41 @@ msgstr "No hay contenido siendo procesado."
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Estos archivos no pudieron ser procesados:"
|
msgstr "Estos archivos no pudieron ser procesados:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "Perfil de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Lo sentimos, no se encontró ese usuario."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "Es necesario un correo electrónico de verificación"
|
msgstr "Es necesario un correo electrónico de verificación"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Casi terminas! Solo falta activar la cuenta."
|
msgstr "¡Casi hemos terminado! Solo falta activar la cuenta."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"En unos momentos te debería llegar un correo electrónico con las "
|
"En unos momentos te debería llegar un correo electrónico con las "
|
||||||
"instrucciones para hacerlo."
|
"instrucciones para hacerlo."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "En caso de que no:"
|
msgstr "En caso de que no:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Reenviar correo electrónico de verificación"
|
msgstr "Reenviar correo electrónico de verificación"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -465,7 +574,7 @@ msgstr ""
|
|||||||
"Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no "
|
"Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no "
|
||||||
"fue activada."
|
"fue activada."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -474,41 +583,37 @@ msgstr ""
|
|||||||
"Si tú eres esa persona, pero has perdido tu correo electrónico de "
|
"Si tú eres esa persona, pero has perdido tu correo electrónico de "
|
||||||
"verificación, puedes <a href=\"%(login_url)s\">acceder</a> y reenviarlo."
|
"verificación, puedes <a href=\"%(login_url)s\">acceder</a> y reenviarlo."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "Perfil de %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí."
|
msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Editar perfil"
|
msgstr "Editar perfil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Este usuario (todavia) no ha completado su perfil."
|
msgstr "Este usuario (todavia) no ha completado su perfil."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Ver todo el contenido de %(username)s"
|
msgstr "Ver todo el contenido de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Aquí es donde tú contenido estará, pero parece que aún no has agregado nada."
|
"Aquí es donde tú contenido estará, pero parece que aún no has agregado nada."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Añadir contenido"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Parece que aún no hay ningún contenido aquí..."
|
msgstr "Parece que aún no hay ningún contenido aquí..."
|
||||||
|
|
||||||
@@ -520,31 +625,57 @@ msgstr "ícono feed"
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom feed"
|
msgstr "Atom feed"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Recientes"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Antiguas"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Comentario"
|
msgstr "Ir a la página:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Estoy seguro de que quiero borrar esto"
|
msgstr "Estoy seguro de que quiero borrar esto"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Ups, tu comentario estaba vacío."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "¡Tu comentario ha sido publicado!"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Eliminaste el contenido"
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr "El contenido no se eliminó porque no marcaste que estabas seguro."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Estás a punto de eliminar un contenido de otro usuario. Proceder con "
|
"Estás a punto de eliminar un contenido de otro usuario. Proceder con "
|
||||||
|
|||||||
Binary file not shown.
@@ -3,6 +3,8 @@
|
|||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
|
# <a5565930@nepwk.com>, 2011.
|
||||||
|
# <chesuidayeur@yahoo.fr>, 2011.
|
||||||
# <joehillen@gmail.com>, 2011.
|
# <joehillen@gmail.com>, 2011.
|
||||||
# <marktraceur@gmail.com>, 2011.
|
# <marktraceur@gmail.com>, 2011.
|
||||||
# <maxineb@members.fsf.org>, 2011.
|
# <maxineb@members.fsf.org>, 2011.
|
||||||
@@ -12,9 +14,9 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2011-12-04 10:24-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2011-12-29 17:39+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: ianux <a5565930@nepwk.com>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -23,6 +25,10 @@ msgstr ""
|
|||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||||
|
|
||||||
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Le fichier envoyé ne correspond pas au type de média."
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nom d'utilisateur"
|
msgstr "Nom d'utilisateur"
|
||||||
@@ -58,8 +64,8 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Un utilisateur existe déjà avec ce nom, désolé."
|
msgstr "Un utilisateur existe déjà avec ce nom, désolé."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Désolé, cette adresse courriel a déjà été prise."
|
msgstr "Désolé, il existe déjà un utilisateur ayant cette adresse e-mail."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:179
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -73,15 +79,26 @@ msgstr ""
|
|||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "La clé de vérification ou le nom d'utilisateur est incorrect."
|
msgstr "La clé de vérification ou le nom d'utilisateur est incorrect."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:203
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
"Vous devez être authentifié afin que nous sachions à qui envoyer l'e-mail !"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:211
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Votre adresse e-mail a déjà été vérifiée !"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:224
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "E-mail de vérification renvoyé."
|
msgstr "E-mail de vérification renvoyé."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:265
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Impossible d'envoyer un email de récupération de mot de passe : votre compte"
|
||||||
|
" est inactif ou bien l'email de votre compte n'a pas été vérifiée."
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
@@ -91,46 +108,68 @@ msgstr "Titre"
|
|||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Tags"
|
msgstr "Tags"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
|
||||||
|
msgid "Seperate tags by commas."
|
||||||
|
msgstr "Séparez les tags par des virgules."
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:33
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Légende"
|
msgstr "Légende"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:34
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "La légende ne peut pas être laissée vide."
|
msgstr "La légende ne peut pas être laissée vide."
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:35
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's URL. You usually don't need to change this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Le nom de ce media dans l'URL. Vous n'avez normalement pas besoin de le "
|
||||||
|
"changer"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:42
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Bio"
|
msgstr "Bio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:45
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Site web"
|
msgstr "Site web"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:49
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "Ancien mot de passe."
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:52
|
||||||
|
msgid "New Password"
|
||||||
|
msgstr "Nouveau mot de passe"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende."
|
msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez "
|
"Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez "
|
||||||
"prendre garde."
|
"prendre garde."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre "
|
"Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre "
|
||||||
"garde."
|
"garde."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:171
|
||||||
msgid "Invalid file given for media type."
|
msgid "Wrong password"
|
||||||
msgstr "Invalide fichier donné pour le type de média."
|
msgstr "Mauvais mot de passe"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:192
|
||||||
|
msgid "Profile edited!"
|
||||||
|
msgstr "Profile mis à jour !"
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:65
|
||||||
|
msgid "Could not find any file extension in \"{filename}\""
|
||||||
|
msgstr "Impossible d'extraire une extension de fichier de \"{nomfichier}\""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
@@ -138,27 +177,27 @@ msgstr "Fichier"
|
|||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/forms.py:30
|
||||||
msgid "Description of this work"
|
msgid "Description of this work"
|
||||||
msgstr ""
|
msgstr "Descriptif pour ce travail"
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
#: mediagoblin/submit/views.py:49
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Il vous faut fournir un fichier."
|
msgstr "Il vous faut fournir un fichier."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:127
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "Ce fichier ne semble pas être une image !"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Youhou, c'est envoyé !"
|
msgstr "Youhou, c'est envoyé !"
|
||||||
|
|
||||||
|
#: mediagoblin/submit/views.py:133
|
||||||
|
msgid "Invalid file type."
|
||||||
|
msgstr "Type de fichier invalide."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:21
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Zut !"
|
msgstr "Zut !"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:24
|
#: mediagoblin/templates/mediagoblin/404.html:24
|
||||||
msgid "There doesn't seem to be a page at this address. Sorry!"
|
msgid "There doesn't seem to be a page at this address. Sorry!"
|
||||||
msgstr "Il ne semble pas être une page à cette adresse. Désolé!"
|
msgstr "Il ne semble pas y avoir de page à cette adresse. Désolé !"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:26
|
#: mediagoblin/templates/mediagoblin/404.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -166,128 +205,113 @@ msgid ""
|
|||||||
" been moved or deleted."
|
" been moved or deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous êtes sûr que l'adresse est correcte, peut-être la page que vous "
|
"Si vous êtes sûr que l'adresse est correcte, peut-être la page que vous "
|
||||||
"recherchez a été déplacé ou supprimé."
|
"recherchez a été déplacée ou supprimée."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/404.html:32
|
||||||
msgid "Image of 404 goblin stressing out"
|
msgid "Image of 404 goblin stressing out"
|
||||||
msgstr "Image de 404 gobelin stresser"
|
msgstr "Image de 404 gobelin angoissé"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
#: mediagoblin/templates/mediagoblin/base.html:49
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "Logo MediaGoblin"
|
msgstr "Logo MediaGoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:54
|
||||||
msgid "Submit media"
|
msgid "Submit media"
|
||||||
msgstr "Soumettre un média"
|
msgstr "Soumettre un média"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:65
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "vérifiez votre adresse e-mail !"
|
msgstr "Vérifiez votre adresse e-mail !"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:72
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "déconnexion"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:75
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "S'identifier"
|
msgstr "S'identifier"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:91
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Propulsé par <a href=\"http://mediagoblin.org\">MediaGoblin</a> , un <a "
|
"Propulsé par <a href=\"http://mediagoblin.org\">MediaGoblin</a> , un projet "
|
||||||
"href=\"http://gnu.org/\">GNU</a> de projet"
|
"<a href=\"http://gnu.org/\">GNU</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:24
|
#: mediagoblin/templates/mediagoblin/root.html:24
|
||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr "Explorer"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:27
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Salut à tous, amateur de médias! MediaGoblin est ..."
|
msgstr "Bonjour, et bienvenu sur ce 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 ""
|
||||||
|
"Ce site fait tourner <a href=\"http://mediagoblin.org\">MediaGoblin</a>, un "
|
||||||
|
"logiciel d'hébergement de média extraordinairement génial."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "L'endroit idéal pour vos médias!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un lieu pour les personnes de collaborer et de montrer des créations "
|
"Ajoutez vos propres medias, commentez ceux des autres, sauvegardez vos "
|
||||||
"originales et dérivées!"
|
"préférés et plus encore ! Faites tout cela depuis votre compte MediaGoblin."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "Vous n'en avez pas ? C'est facile !"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
"Logiciel libre. (Nous sommes une <a href=\"http://gnu.org\">GNU</a> projet, "
|
|
||||||
"après tout.)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Visant à rendre le monde meilleur grâce à la décentralisation et "
|
|
||||||
"(éventuellement, venir bientôt!) fédération!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Construit pour l'extensibilité. (Plusieurs types de médias à venir au "
|
|
||||||
"logiciel, y compris le support vidéo!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Propulsé par des gens comme vous. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">Vous pouvez nous aider à "
|
|
||||||
"améliorer ce logiciel!</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Créez un compte sur ce site</a>\n"
|
||||||
|
" ou\n"
|
||||||
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Déployez MediaGoblin sur votre propre serveur</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:44
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr "Tout derniers media"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
||||||
msgid "Enter your new password"
|
msgid "Enter your new password"
|
||||||
msgstr ""
|
msgstr "Entrez un nouveau mot de passe"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
|
||||||
msgid "Enter your username or email"
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgstr ""
|
msgid "Submit"
|
||||||
|
msgstr "Soumettre"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Récupérer le mot de passe"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Envoyer les instructions"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Your password has been changed. Try to log in now."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Votre mot de passe a été changé. Essayez maintenant de vous identifier."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
"Check your inbox. We sent an email with a URL for changing your password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Verifiez votre boîte de réception. Nous vous avons envoyé un email avec une "
|
||||||
|
"URL vous permettant de changer votre mot de passe."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -302,26 +326,31 @@ msgid ""
|
|||||||
"If you think this is an error, just ignore this email and continue being\n"
|
"If you think this is an error, just ignore this email and continue being\n"
|
||||||
"a happy goblin!"
|
"a happy goblin!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Bonjour %(username)s,\n"
|
||||||
|
"\n"
|
||||||
|
"Pour changer votre mot de passe GNU MediaGoblin, ouvrez l'URL suivante dans \n"
|
||||||
|
"votre navigateur internet :\n"
|
||||||
|
"\n"
|
||||||
|
"%(verification_url)s\n"
|
||||||
|
"\n"
|
||||||
|
"Si vous pensez qu'il s'agit d'une erreur, ignorez simplement cet email et restez\n"
|
||||||
|
"un goblin heureux !"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Connexion a échoué!"
|
msgstr "La connexion a échoué!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Pas encore de compte ?"
|
msgstr "Pas encore de compte ?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Créez-en un ici !"
|
msgstr "Créez-en un ici !"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr "Vous avez oublié votre mot de passe ?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
@@ -367,27 +396,54 @@ msgstr "Enregistrer les modifications"
|
|||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Modification du profil de %(username)s"
|
msgstr "Modification du profil de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Média comportant les tags suivants :"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "Médias taggés avec : %(tag_name)s "
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Original"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Submit yer media"
|
||||||
msgstr "Soumettez ce média"
|
msgstr "Soumettez ce média"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
msgid "Submit"
|
#, python-format
|
||||||
msgstr "Soumettre"
|
msgid "%(username)s's media"
|
||||||
|
msgstr "Medias de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Médias de <a href=\"%(user_url)s\">%(username)s</a>"
|
msgstr "Médias de <a href=\"%(user_url)s\">%(username)s</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
|
||||||
msgstr "Impossible de trouver cet utilisateur, désolé."
|
msgstr "Par <a href=\"%(user_url)s\">%(username)s</a> le %(date)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
|
||||||
|
msgid "Post a comment"
|
||||||
|
msgstr "Poster un commentaire"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
|
||||||
|
msgid "at"
|
||||||
|
msgstr "à"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
|
||||||
|
msgid "Post comment!"
|
||||||
|
msgstr "Poster le commentaire !"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Éditer"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Effacer"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -396,7 +452,7 @@ msgstr "Voulez-vous vraiment supprimer %(title)s ?"
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
||||||
msgid "Delete Permanently"
|
msgid "Delete Permanently"
|
||||||
msgstr ""
|
msgstr "Supprimer définitivement"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
|
||||||
msgid "Media processing panel"
|
msgid "Media processing panel"
|
||||||
@@ -419,33 +475,43 @@ msgstr "Aucun média en transformation"
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Ces ajouts n'etaient pas processé:"
|
msgstr "Le traitement de ces ajouts a échoué :"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "profil de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Impossible de trouver cet utilisateur, désolé."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "Vérification d'email nécessaire"
|
msgstr "Vérification d'email nécessaire"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Presque fini ! Votre compte a encore besoin d'être activé."
|
msgstr "Presque fini ! Votre compte a encore besoin d'être activé."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un e-mail devrait vous parvenir dans quelques instants ; il vous indiquera "
|
"Un e-mail devrait vous parvenir dans quelques instants ; il vous indiquera "
|
||||||
"comment procéder."
|
"comment procéder."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Si la vérification n'est pas arrivée à bon port :"
|
msgstr "Si la vérification n'est pas arrivée à bon port :"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Renvoyer l'e-mail de vérification"
|
msgstr "Renvoyer l'e-mail de vérification"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -453,7 +519,7 @@ msgstr ""
|
|||||||
"Quelqu'un a enregistré un compte avec ce nom, mais il doit encore être "
|
"Quelqu'un a enregistré un compte avec ce nom, mais il doit encore être "
|
||||||
"activé."
|
"activé."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -463,48 +529,43 @@ msgstr ""
|
|||||||
"vérification, vous pouvez vous <a href=\"%(login_url)s\">identifier</a> et "
|
"vérification, vous pouvez vous <a href=\"%(login_url)s\">identifier</a> et "
|
||||||
"le renvoyer."
|
"le renvoyer."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "profil de %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Voici un endroit pour parler aux autres de vous-même."
|
msgstr "Voici un endroit pour parler aux autres de vous-même."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:119
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Modifier le profil"
|
msgstr "Modifier le profil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:107
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Cet utilisateur n'a pas rempli leur profil (encore)."
|
msgstr "Cet utilisateur n'a pas (encore) rempli son profil."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:133
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Voir tous les médias de %(username)s"
|
msgstr "Voir tous les médias de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:146
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"C'est là où vos médias apparaît, mais vous ne semblez pas avoir quoi que ce "
|
"C'est là où vos médias apparaîssent, mais vous ne semblez pas avoir encore "
|
||||||
"soit encore ajouté."
|
"ajouté quoi que ce soit."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:152
|
||||||
msgid "Add media"
|
msgid "Add media"
|
||||||
msgstr "Ajouter des médias"
|
msgstr "Ajouter des médias"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:158
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Il ne semble pas être un média encore là ..."
|
msgstr "Il ne semble pas y avoir de média là, pour l'instant ..."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
||||||
msgid "feed icon"
|
msgid "feed icon"
|
||||||
msgstr "icon de flux"
|
msgstr "icone de flux"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
@@ -512,11 +573,23 @@ msgstr "flux Atom"
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
||||||
msgid "Newer"
|
msgid "Newer"
|
||||||
msgstr ""
|
msgstr "Nouveaux"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
||||||
msgid "Older"
|
msgid "Older"
|
||||||
msgstr ""
|
msgstr "Anciens"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
|
||||||
|
msgid "Go to page:"
|
||||||
|
msgstr "Aller à la page :"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "Tagged with"
|
||||||
|
msgstr "Taggé avec"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "and"
|
||||||
|
msgstr "et"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/user_pages/forms.py:24
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
@@ -524,17 +597,27 @@ msgstr "Commentaire"
|
|||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr "Je suis sûr de vouloir supprimer cela"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Oups, votre commentaire était vide."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "Votre commentaire a été posté !"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Vous avez supprimé le media."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
"Ce media n'a pas été supprimé car vous n'avez pas confirmer que vous étiez "
|
||||||
|
"sur."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous êtes sur le point de supprimer des médias d'un autre utilisateur. "
|
"Vous êtes sur le point de supprimer des médias d'un autre utilisateur. "
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,27 +19,19 @@ msgstr ""
|
|||||||
"Language: ia\n"
|
"Language: ia\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nomine de usator"
|
msgstr "Nomine de usator"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contrasigno"
|
msgstr "Contrasigno"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Adresse de e-posta"
|
msgstr "Adresse de e-posta"
|
||||||
|
|
||||||
@@ -52,95 +44,163 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titulo"
|
msgstr "Titulo"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Sito web"
|
msgstr "Sito web"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -154,33 +214,30 @@ msgid ""
|
|||||||
" been moved or deleted."
|
" been moved or deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
|
msgid "Add media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Initiar session"
|
msgstr "Initiar session"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -190,76 +247,52 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid ""
|
msgid "Send instructions"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
@@ -280,27 +313,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Crear un conto!"
|
msgstr "Crear un conto!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -326,35 +355,113 @@ msgid "Cancel"
|
|||||||
msgstr "Cancellar"
|
msgstr "Cancellar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
@@ -387,75 +494,81 @@ msgstr ""
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "Profilo de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"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."
|
"href=\"%(login_url)s\">log in</a> and resend it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "Profilo de %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -467,31 +580,57 @@ msgstr ""
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Commento"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,15 +1,16 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
|
# <pikappa469@alice.it>, 2011.
|
||||||
# <robi@nunnisoft.ch>, 2011.
|
# <robi@nunnisoft.ch>, 2011.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,27 +20,19 @@ msgstr ""
|
|||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "documento non valido come tipo multimediale."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nome utente"
|
msgstr "Nome utente"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Password"
|
msgstr "Password"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Le password devono coincidere"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Conferma password"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr "Scrivilo ancora qui per assicurarti che non ci siano errori"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Indirizzo email"
|
msgstr "Indirizzo email"
|
||||||
|
|
||||||
@@ -52,10 +45,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Spiacente, esiste già un utente con quel nome"
|
msgstr "Spiacente, esiste già un utente con quel nome"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Spiacente, quell'indirizzo email è già stato preso."
|
msgstr "Siamo spiacenti, un utente con quell'indirizzo email esiste già."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -63,88 +56,159 @@ msgstr ""
|
|||||||
"Il tuo indirizzo email è stato verificato. Puoi ora fare login, modificare "
|
"Il tuo indirizzo email è stato verificato. Puoi ora fare login, modificare "
|
||||||
"il tuo profilo, e inserire immagini!"
|
"il tuo profilo, e inserire immagini!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "La chiave di verifica o l'id utente è sbagliato"
|
msgstr "La chiave di verifica o l'id utente è sbagliato"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
"Devi entrare col tuo profilo così possiamo sapere a chi inviare l'email!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Hai già verificato il tuo indirizzo email!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Rispedisci email di verifica"
|
msgstr "Rispedisci email di verifica"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Impossibile inviare l'email di recupero password perchè il tuo nome utente è"
|
||||||
|
" inattivo o il tuo account email non è stato verificato."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Titolo"
|
msgstr "Titolo"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Descrizione di questo lavoro"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Tags"
|
msgstr "Tags"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Bio"
|
msgstr "Bio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Sito web"
|
msgstr "Sito web"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "Password vecchia"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Stai modificando documenti multimediale di un altro utente. Procedi con "
|
"Stai modificando documenti multimediale di un altro utente. Procedi con "
|
||||||
"attenzione."
|
"attenzione."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Stai modificando il profilo di un utente. Procedi con attenzione."
|
msgstr "Stai modificando il profilo di un utente. Procedi con attenzione."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "documento non valido come tipo multimediale."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr "Password errata"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Documento"
|
msgstr "Documento"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Descrizione di questo lavoro"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Devi specificare un documento."
|
msgstr "Devi specificare un documento."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "Il documento non sembra essere un'immagine!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Evviva! "
|
msgstr "Evviva! "
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Immagine di 404 folletti che stressano"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Oops!"
|
msgstr "Oops!"
|
||||||
|
|
||||||
@@ -160,33 +224,30 @@ msgstr ""
|
|||||||
"Se sei sicuro che l'indirizzo è corretto, forse la pagina che stai cercando "
|
"Se sei sicuro che l'indirizzo è corretto, forse la pagina che stai cercando "
|
||||||
"è stata spostata o cancellata."
|
"è stata spostata o cancellata."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Immagine di 404 folletti che stressano"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "MediaGoblin logo"
|
msgstr "MediaGoblin logo"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Inoltra file multimediale"
|
msgid "Add media"
|
||||||
|
msgstr "Aggiungi documenti multimediali"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "verifica il tuo indirizzo email!"
|
msgstr "Verifica la tua email!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "disconnettiti"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Accedi"
|
msgstr "Accedi"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -198,86 +259,59 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr "Esplora"
|
msgstr "Esplora"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Ciao, amante del multimedia! MediaGoblin è..."
|
msgstr "Ciao, benvenuto a questo sito 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 ""
|
||||||
|
"questo sito sta utilizzando <a "
|
||||||
|
"href=\"http://mediagoblin.org\">Mediagoblin</a>, un ottimo programma di "
|
||||||
|
"media hosting."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "Il posto perfetto per i tuoi documenti multimediali!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Un posto per collaborare con altri e mostrare le proprie creazioni originali"
|
"Per aggiungere i tuoi file, scrivere commenti, salvare i tuoi preferiti e "
|
||||||
" e derivate!"
|
"altro, devi entrare col tuo profilo MediaGoblin."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "Non ne hai già uno? E' semplice!"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
"Libero, come in libertà. (Siamo un progetto <a "
|
|
||||||
"href=\"http://gnu.org\">GNU</a>, dopotutto.)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Con l'obbiettivo di rendere il mondo un posto migliore attraverso la "
|
|
||||||
"decentrelizzazione e (finalmente, presto!) federazione!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Fatto per estensibilità. (Numerosi tipi multimediali saranno presto aggiunti"
|
|
||||||
" al programma, incluso il supporto video!)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Eccitato di unirti a noi?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "Documenti multimediali più recenti"
|
msgstr "Documenti multimediali più recenti"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Inserisci la tua nuova password"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
|
||||||
msgid "Enter your username or email"
|
|
||||||
msgstr "Inserisci il tuo nome utente o email"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
|
||||||
msgid "Your password has been changed. Try to log in now."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid ""
|
msgid "Set password"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Recupera Password"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Invia istruzioni"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -291,32 +325,36 @@ msgid ""
|
|||||||
"If you think this is an error, just ignore this email and continue being\n"
|
"If you think this is an error, just ignore this email and continue being\n"
|
||||||
"a happy goblin!"
|
"a happy goblin!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ciao %(username)s,\n"
|
||||||
|
"per cambiare la tua password MediaGoblin apri il seguente URL\n"
|
||||||
|
"nel tuo web browser:\n"
|
||||||
|
"\n"
|
||||||
|
"%(verification_url)s\n"
|
||||||
|
"\n"
|
||||||
|
"Se pensi che sia un errore, ignora semplicemente questa email e continua ad essere \n"
|
||||||
|
"un goblin felice!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Accesso fallito!"
|
msgstr "Accesso fallito!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Non hai ancora un account?"
|
msgstr "Non hai ancora un account?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Creane uno qui!"
|
msgstr "Creane uno qui!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Hai dimenticato la password?"
|
msgstr "Hai dimenticato la password?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Crea un account!"
|
msgstr "Crea un account!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Crea"
|
msgstr "Crea"
|
||||||
|
|
||||||
@@ -347,36 +385,114 @@ msgid "Cancel"
|
|||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Salva i cambiamenti"
|
msgstr "Salva i cambiamenti"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Stai modificando il profilo di %(username)s"
|
msgstr "Stai modificando il profilo di %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Media taggata con:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "file taggato con:%(tag_name)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Originale"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Inoltra documento multimediale"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Conferma"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr "file di %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Documenti multimediali di <a href=\"%(user_url)s\">%(username)s</a>"
|
msgstr "Documenti multimediali di <a href=\"%(user_url)s\">%(username)s</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Mi dispiace, utente non trovato"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Modifica"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Elimina"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr "a"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -408,30 +524,40 @@ msgstr "Nessun documento multimediale in elaborazione"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "L'elaborazione di questi upload è fallita:"
|
msgstr "L'elaborazione di questi upload è fallita:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "profilo di %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Mi dispiace, utente non trovato"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "è necessario verificare email"
|
msgstr "è necessario verificare email"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Quasi finito! Il tuo account deve ancora essere attivato."
|
msgstr "Quasi finito! Il tuo account deve ancora essere attivato."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"In breve dovresti ricevere un email contenente istruzioni su come fare."
|
"In breve dovresti ricevere un email contenente istruzioni su come fare."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Nel caso non fosse:"
|
msgstr "Nel caso non fosse:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Rispedisci email di verifica"
|
msgstr "Rispedisci email di verifica"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -439,7 +565,7 @@ msgstr ""
|
|||||||
"Qualcuno ha registrato un account con questo nome utente, ma deve ancora "
|
"Qualcuno ha registrato un account con questo nome utente, ma deve ancora "
|
||||||
"essere attivato."
|
"essere attivato."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -448,30 +574,29 @@ msgstr ""
|
|||||||
"Se sei quella persona ma hai perso l'email di verifica, puoi <a "
|
"Se sei quella persona ma hai perso l'email di verifica, puoi <a "
|
||||||
"href=\"%(login_url)s\">accedere</a> e rispedirlo."
|
"href=\"%(login_url)s\">accedere</a> e rispedirlo."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "profilo di %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Ecco un posto dove raccontare agli altri di te."
|
msgstr "Ecco un posto dove raccontare agli altri di te."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Modifica profilo"
|
msgstr "Modifica profilo"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Questo utente non ha (ancora) compilato il proprio profilo."
|
msgstr "Questo utente non ha (ancora) compilato il proprio profilo."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Visualizza tutti i file multimediali di %(username)s"
|
msgstr "Visualizza tutti i file multimediali di %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
@@ -479,11 +604,8 @@ msgstr ""
|
|||||||
"Questo è dove i tuoi documenti multimediali appariranno, ma sembra che tu "
|
"Questo è dove i tuoi documenti multimediali appariranno, ma sembra che tu "
|
||||||
"non abbia ancora aggiunto niente."
|
"non abbia ancora aggiunto niente."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Aggiungi documenti multimediali"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Non sembra ci sia ancora nessun documento multimediali qui.."
|
msgstr "Non sembra ci sia ancora nessun documento multimediali qui.."
|
||||||
|
|
||||||
@@ -495,31 +617,58 @@ msgstr "feed icon"
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom feed"
|
msgstr "Atom feed"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Più nuovo"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Più vecchio"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Commento"
|
msgstr "Vai alla pagina:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Sono sicuro di volerlo cancellare"
|
msgstr "Sono sicuro di volerlo cancellare"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Oops, il tuo commento era vuoto."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "Il tuo commento è stato aggiunto!"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Hai cancellato il file"
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
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:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Stai cancellando un documento multimediale di un altro utente. Procedi con "
|
"Stai cancellando un documento multimediale di un altro utente. Procedi con "
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,27 +19,19 @@ msgstr ""
|
|||||||
"Language: ja\n"
|
"Language: ja\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0\n"
|
"Plural-Forms: nplurals=1; plural=0\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "ユーザネーム"
|
msgstr "ユーザネーム"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "パスワード"
|
msgstr "パスワード"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "パスワードが一致している必要があります。"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "パスワードを確認"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "メールアドレス"
|
msgstr "メールアドレス"
|
||||||
|
|
||||||
@@ -52,95 +44,163 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。"
|
msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!"
|
msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "検証キーまたはユーザーIDが間違っています"
|
msgstr "検証キーまたはユーザーIDが間違っています"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "検証メールを再送しました。"
|
msgstr "検証メールを再送しました。"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "タイトル"
|
msgstr "タイトル"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "タグ"
|
msgstr "タグ"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "スラグ"
|
msgstr "スラグ"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "スラグは必要です。"
|
msgstr "スラグは必要です。"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "自己紹介"
|
msgstr "自己紹介"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "URL"
|
msgstr "URL"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。"
|
msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。"
|
msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。"
|
msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。"
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "ファイル"
|
msgstr "ファイル"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "ファイルを提供する必要があります。"
|
msgstr "ファイルを提供する必要があります。"
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "ファイルが画像ではないようです!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "投稿終了!"
|
msgstr "投稿終了!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -154,33 +214,30 @@ msgid ""
|
|||||||
" been moved or deleted."
|
" been moved or deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "コンテンツを投稿"
|
msgid "Add media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "メアドを確認してください!"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "ログイン"
|
msgstr "ログイン"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -190,76 +247,52 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid ""
|
msgid "Send instructions"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
@@ -280,27 +313,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "まだアカウントを持っていませんか?"
|
msgstr "まだアカウントを持っていませんか?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "ここで作成!"
|
msgstr "ここで作成!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "アカウントを作成!"
|
msgstr "アカウントを作成!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -331,36 +360,114 @@ msgid "Cancel"
|
|||||||
msgstr "キャンセル"
|
msgstr "キャンセル"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "投稿する"
|
msgstr "投稿する"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "%(username)sさんのプロフィールを編集中"
|
msgstr "%(username)sさんのプロフィールを編集中"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "タグ付けされたコンテンツ:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "コンテンツを投稿"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "送信"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "<a href=\"%(user_url)s\">%(username)s</a>さんのコンテンツ"
|
msgstr "<a href=\"%(user_url)s\">%(username)s</a>さんのコンテンツ"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -392,75 +499,81 @@ msgstr ""
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "%(username)sさんのプロフィール"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr "メールは、その方法の指示でいくつかの瞬間に到着します。"
|
msgstr "メールは、その方法の指示でいくつかの瞬間に到着します。"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "到着しない場合は、"
|
msgstr "到着しない場合は、"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "確認メールを再送信"
|
msgstr "確認メールを再送信"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"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."
|
"href=\"%(login_url)s\">log in</a> and resend it."
|
||||||
msgstr "あなたの確認メールを紛失した場合、<a href=\"%(login_url)s\">ログイン</a>して再送できます。"
|
msgstr "あなたの確認メールを紛失した場合、<a href=\"%(login_url)s\">ログイン</a>して再送できます。"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "%(username)sさんのプロフィール"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "プロフィールを編集"
|
msgstr "プロフィールを編集"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "%(username)sさんのコンテンツをすべて見る"
|
msgstr "%(username)sさんのコンテンツをすべて見る"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -472,31 +585,57 @@ msgstr ""
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -3,14 +3,14 @@
|
|||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# <mail@jefvanschendel.nl>, 2011.
|
# <mail@jefvanschendel.nl>, 2011, 2012.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2011-12-04 10:24-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-04 18:42+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: schendje <mail@jefvanschendel.nl>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -19,6 +19,10 @@ msgstr ""
|
|||||||
"Language: nl\n"
|
"Language: nl\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Verkeerd bestandsformaat voor mediatype opgegeven."
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Gebruikersnaam"
|
msgstr "Gebruikersnaam"
|
||||||
@@ -37,7 +41,7 @@ msgstr "Bevestig wachtwoord"
|
|||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
#: mediagoblin/auth/forms.py:39
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
msgid "Type it again here to make sure there are no spelling mistakes."
|
||||||
msgstr ""
|
msgstr "Typ het hier nog een keer om spelfouten te voorkomen."
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
#: mediagoblin/auth/forms.py:42
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
@@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Sorry, er bestaat al een gebruiker met die naam."
|
msgstr "Sorry, er bestaat al een gebruiker met die naam."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Sorry, dat e-mailadres is al ingenomen."
|
msgstr "Sorry, een gebruiker met dat e-mailadres bestaat al."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:179
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -67,15 +71,27 @@ msgstr ""
|
|||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "De verificatie sleutel of gebruikers-ID is onjuist"
|
msgstr "De verificatie sleutel of gebruikers-ID is onjuist"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:203
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
"Je moet ingelogd zijn, anders weten we niet waar we de e-mail naartoe moeten"
|
||||||
|
" sturen!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:211
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Je hebt je e-mailadres al geverifieerd!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:224
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Verificatie e-mail opnieuw opgestuurd."
|
msgstr "Verificatie e-mail opnieuw opgestuurd."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:265
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Email kon niet verstuurd worden omdat je gebruikersnaam inactief is of omdat"
|
||||||
|
" je e-mailadres nog niet geverifieerd is."
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
@@ -85,45 +101,67 @@ msgstr "Titel"
|
|||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Etiket"
|
msgstr "Etiket"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34
|
||||||
msgid "Slug"
|
msgid "Seperate tags by commas."
|
||||||
msgstr ""
|
msgstr "Scheidt labels met komma's."
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
|
||||||
msgid "The slug can't be empty"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:33
|
||||||
|
msgid "Slug"
|
||||||
|
msgstr "Slug"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:34
|
||||||
|
msgid "The slug can't be empty"
|
||||||
|
msgstr "De slug kan niet leeg zijn"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:35
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's URL. You usually don't need to change this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Het titeldeel van het adres van deze media. Meestal hoef je dit niet aan te "
|
||||||
|
"passen."
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:42
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Bio"
|
msgstr "Bio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:45
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Website"
|
msgstr "Website"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:49
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "Old password"
|
||||||
msgstr ""
|
msgstr "Oud wachtwoord"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/forms.py:52
|
||||||
|
msgid "New Password"
|
||||||
|
msgstr "Nieuw wachtwoord"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
|
msgid "An entry with that slug already exists for this user."
|
||||||
|
msgstr "Er bestaat al een met die slug voor deze gebruiker."
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig "
|
"U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig "
|
||||||
"te werk."
|
"te werk."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk."
|
"U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:171
|
||||||
msgid "Invalid file given for media type."
|
msgid "Wrong password"
|
||||||
msgstr ""
|
msgstr "Verkeerd wachtwoord"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:192
|
||||||
|
msgid "Profile edited!"
|
||||||
|
msgstr "Profiel aangepast!"
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:65
|
||||||
|
msgid "Could not find any file extension in \"{filename}\""
|
||||||
|
msgstr "Kon geen bestandsformaat voor \"{filename}\" vinden"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
@@ -131,141 +169,141 @@ msgstr "Bestand"
|
|||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/forms.py:30
|
||||||
msgid "Description of this work"
|
msgid "Description of this work"
|
||||||
msgstr ""
|
msgstr "Beschrijving van dit werk"
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
#: mediagoblin/submit/views.py:49
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "U moet een bestand aangeven."
|
msgstr "U moet een bestand aangeven."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:127
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "Het lijkt erop dat dit bestand geen afbeelding is!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Mooizo! Toegevoegd!"
|
msgstr "Mooizo! Toegevoegd!"
|
||||||
|
|
||||||
|
#: mediagoblin/submit/views.py:133
|
||||||
|
msgid "Invalid file type."
|
||||||
|
msgstr "Ongeldig bestandstype"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:21
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr ""
|
msgstr "Oeps!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:24
|
#: mediagoblin/templates/mediagoblin/404.html:24
|
||||||
msgid "There doesn't seem to be a page at this address. Sorry!"
|
msgid "There doesn't seem to be a page at this address. Sorry!"
|
||||||
msgstr ""
|
msgstr "Het lijkt erop dat er geen pagina bestaat op dit adres. Sorry!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:26
|
#: mediagoblin/templates/mediagoblin/404.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're sure the address is correct, maybe the page you're looking for has"
|
"If you're sure the address is correct, maybe the page you're looking for has"
|
||||||
" been moved or deleted."
|
" been moved or deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Als je zeker weet dat het adres klopt is de pagina misschien verplaatst of "
|
||||||
|
"verwijderd."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/404.html:32
|
||||||
msgid "Image of 404 goblin stressing out"
|
msgid "Image of 404 goblin stressing out"
|
||||||
msgstr ""
|
msgstr "Afbeelding van de 404 goblin onder stress"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
#: mediagoblin/templates/mediagoblin/base.html:49
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr ""
|
msgstr "MediaGoblin logo"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:54
|
||||||
msgid "Submit media"
|
msgid "Submit media"
|
||||||
msgstr "Voeg media toe"
|
msgstr "Voeg media toe"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:65
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "Controleer uw e-mail!"
|
msgstr "Verifieer je e-mailadres!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:72
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "uitloggen"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:75
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Inloggen"
|
msgstr "Inloggen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:91
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Aangedreven door <a "
|
||||||
|
"href=\"http://mediagoblin.org\">MediaGoblin</a> , een <a "
|
||||||
|
"href=\"http://gnu.org/\">GNU-project</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:24
|
#: mediagoblin/templates/mediagoblin/root.html:24
|
||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr ""
|
msgstr "Verkennen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:27
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
|
msgstr "Hoi, welkom op deze MediaGoblin website!"
|
||||||
|
|
||||||
|
#: 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 ""
|
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:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Om je eigen media toe te voegen, berichten te plaatsen, favorieten op te "
|
||||||
|
"slaan en meer, kun je inloggen met je MediaGoblin account."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr "Heb je er nog geen? Het is heel eenvoudig!"
|
||||||
"after all.)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Creëer een account op deze website</a>\n"
|
||||||
|
" of\n"
|
||||||
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Gebruik MediaGoblin op je eigen server</a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:44
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr ""
|
msgstr "Nieuwste media"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
||||||
msgid "Enter your new password"
|
msgid "Enter your new password"
|
||||||
msgstr ""
|
msgstr "Voer je nieuwe wachtwoord in"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33
|
||||||
msgid "Enter your username or email"
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgstr ""
|
msgid "Submit"
|
||||||
|
msgstr "Voeg toe"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Wachtwoord herstellen"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Stuur instructies"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Your password has been changed. Try to log in now."
|
||||||
msgstr ""
|
msgstr "Je wachtwoord is veranderd. Probeer om opnieuw in te loggen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
"Check your inbox. We sent an email with a URL for changing your password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Check je inbox. Er is een e-mail verstuurd waarmee je je wachtwoord kunt "
|
||||||
|
"veranderen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -280,26 +318,29 @@ msgid ""
|
|||||||
"If you think this is an error, just ignore this email and continue being\n"
|
"If you think this is an error, just ignore this email and continue being\n"
|
||||||
"a happy goblin!"
|
"a happy goblin!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Hoi %(username)s,\n"
|
||||||
|
"\n"
|
||||||
|
"Om je wachtwoord voor GNU MediaGoblin te veranderen, moet je dit adres in je webbrowser openen:\n"
|
||||||
|
"\n"
|
||||||
|
"%(verification_url)s\n"
|
||||||
|
"\n"
|
||||||
|
"Als je denkt dat dit niet klopt, kun je deze e-mail gewoon negeren."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
#: mediagoblin/templates/mediagoblin/auth/login.html:30
|
||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr ""
|
msgstr "Inloggen is mislukt!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Heeft u nog geen account?"
|
msgstr "Heeft u nog geen account?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Maak er hier een!"
|
msgstr "Maak er hier een!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr ""
|
msgstr "Wachtwoord vergeten?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
|
||||||
msgid "Change it!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
@@ -307,7 +348,7 @@ msgstr "Maak een account aan!"
|
|||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr ""
|
msgstr "Creëer"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -342,89 +383,128 @@ msgstr "Wijzigingen opslaan"
|
|||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Het profiel aanpassen van %(username)s"
|
msgstr "Het profiel aanpassen van %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Media met het etiket:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr "Media met het label: %(tag_name)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:19
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Origineel"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Submit yer media"
|
||||||
msgstr "Voeg media toe"
|
msgstr "Voeg media toe"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
msgid "Submit"
|
#, python-format
|
||||||
msgstr "Voeg toe"
|
msgid "%(username)s's media"
|
||||||
|
msgstr "Media van %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Media van <a href=\"%(user_url)s\"> %(username)s </a>"
|
msgstr "Media van <a href=\"%(user_url)s\"> %(username)s </a>"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:57
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "By <a href=\"%(user_url)s\">%(username)s</a> on %(date)s"
|
||||||
msgstr "Sorry, die gebruiker kon niet worden gevonden."
|
msgstr "Door <a href=\"%(user_url)s\">%(username)s</a> op %(date)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:67
|
||||||
|
msgid "Post a comment"
|
||||||
|
msgstr "Plaats een bericht"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:85
|
||||||
|
msgid "at"
|
||||||
|
msgstr "op"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:102
|
||||||
|
msgid "Post comment!"
|
||||||
|
msgstr "Plaats bericht!"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:124
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Pas aan"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:130
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Really delete %(title)s?"
|
msgid "Really delete %(title)s?"
|
||||||
msgstr ""
|
msgstr "Zeker weten dat je %(title)s wil verwijderen?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50
|
||||||
msgid "Delete Permanently"
|
msgid "Delete Permanently"
|
||||||
msgstr ""
|
msgstr "Permanent verwijderen"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22
|
||||||
msgid "Media processing panel"
|
msgid "Media processing panel"
|
||||||
msgstr ""
|
msgstr "Mediaverwerkingspaneel"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can track the state of media being processed for your gallery here."
|
"You can track the state of media being processed for your gallery here."
|
||||||
msgstr ""
|
msgstr "Hier kun je de status zien van de media die verwerkt worden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28
|
||||||
msgid "Media in-processing"
|
msgid "Media in-processing"
|
||||||
msgstr ""
|
msgstr "Media te verwerken"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46
|
||||||
msgid "No media in-processing"
|
msgid "No media in-processing"
|
||||||
msgstr ""
|
msgstr "Geen media om te verwerken"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50
|
||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr ""
|
msgstr "Deze toevoegingen konden niet verwerkt worden:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "Profiel van %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Sorry, die gebruiker kon niet worden gevonden."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr ""
|
msgstr "Emailverificatie is nodig"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr ""
|
msgstr "Bijna klaar! Je account moet nog geactiveerd worden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Een e-mail zou in een paar ogenblikken aan moeten komen met instructies "
|
"Een e-mail zou in een paar ogenblikken aan moeten komen met instructies "
|
||||||
"hiertoe."
|
"hiertoe."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Zoniet:"
|
msgstr "Zoniet:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Stuur de verificatie e-mail opnieuw op."
|
msgstr "Stuur de verificatie e-mail opnieuw op."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Iemand heeft een account met deze gebruikersnaam gemaakt, maar hij moet nog "
|
||||||
|
"geactiveerd worden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -433,58 +513,67 @@ msgstr ""
|
|||||||
"Als u die persoon bent, maar de verificatie e-mail verloren hebt, kunt u <a "
|
"Als u die persoon bent, maar de verificatie e-mail verloren hebt, kunt u <a "
|
||||||
"href=\"%(login_url)s\">inloggen</a> en hem nogmaals verzenden."
|
"href=\"%(login_url)s\">inloggen</a> en hem nogmaals verzenden."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "Profiel van %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr ""
|
msgstr "Hier is een plekje om anderen over jezelf te vertellen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:119
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Profiel aanpassen."
|
msgstr "Profiel aanpassen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:107
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr ""
|
msgstr "Deze gebruiker heeft zijn of haar profiel (nog) niet ingevuld."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:133
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Bekijk alle media van %(username)s"
|
msgstr "Bekijk alle media van %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:146
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr ""
|
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:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:152
|
||||||
msgid "Add media"
|
msgid "Add media"
|
||||||
msgstr ""
|
msgstr "Voeg media toe"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:158
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr ""
|
msgstr "Het lijkt erop dat er nog geen media is."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21
|
||||||
msgid "feed icon"
|
msgid "feed icon"
|
||||||
msgstr ""
|
msgstr "feed icoon"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23
|
||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr ""
|
msgstr "Atom feed"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
||||||
msgid "Newer"
|
msgid "Newer"
|
||||||
msgstr ""
|
msgstr "Nieuwer"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
||||||
msgid "Older"
|
msgid "Older"
|
||||||
msgstr ""
|
msgstr "Ouder"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:50
|
||||||
|
msgid "Go to page:"
|
||||||
|
msgstr "Ga naar pagina:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "Tagged with"
|
||||||
|
msgstr "Gelabeld met"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "and"
|
||||||
|
msgstr "en"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/user_pages/forms.py:24
|
||||||
msgid "Comment"
|
msgid "Comment"
|
||||||
@@ -492,18 +581,29 @@ msgstr "Commentaar"
|
|||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr ""
|
msgstr "Ik weet zeker dat ik dit wil verwijderen."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr "Oeps, je bericht was leeg."
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr "Je bericht is geplaatst!"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Je hebt deze media verwijderd."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
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:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Je staat op het punt de media van iemand anders te verwijderen. Pas op."
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -8,8 +8,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,27 +19,19 @@ msgstr ""
|
|||||||
"Language: nn_NO\n"
|
"Language: nn_NO\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Ugyldig fil for mediatypen."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Brukarnamn"
|
msgstr "Brukarnamn"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passord"
|
msgstr "Passord"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Passorda må vera like."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Gjenta passord"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr "Skriv passordet omatt for å unngå stavefeil."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Epost"
|
msgstr "Epost"
|
||||||
|
|
||||||
@@ -52,10 +44,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Ein konto med dette brukarnamnet finst allereide."
|
msgstr "Ein konto med dette brukarnamnet finst allereide."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Den epostadressa er allereide teken."
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -63,87 +55,155 @@ msgstr ""
|
|||||||
"Kontoen din er stadfesta. Du kan no logga inn, endra profilen din og lasta "
|
"Kontoen din er stadfesta. Du kan no logga inn, endra profilen din og lasta "
|
||||||
"opp filer."
|
"opp filer."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil."
|
msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "Send ein ny stadfestingsepost."
|
msgstr "Send ein ny stadfestingsepost."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kunne ikkje senda epost. Brukarnamnet ditt er inaktivt eller uverifisert."
|
"Kunne ikkje senda epost. Brukarnamnet ditt er inaktivt eller uverifisert."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Tittel"
|
msgstr "Tittel"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Skildring av mediefila"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Merkelappar"
|
msgstr "Merkelappar"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Nettnamn"
|
msgstr "Nettnamn"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "Nettnamnet kan ikkje vera tomt"
|
msgstr "Nettnamnet kan ikkje vera tomt"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
msgstr "Nettnamnet (adressetittel) for mediefila di. Trengst ikkje endrast."
|
"this."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Presentasjon"
|
msgstr "Presentasjon"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Heimeside"
|
msgstr "Heimeside"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Eit innlegg med denne adressetittelen finst allereie."
|
msgstr "Eit innlegg med denne adressetittelen finst allereie."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
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 mediefiler."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Trå varsamt, du endrar nokon andre sin profil."
|
msgstr "Trå varsamt, du endrar nokon andre sin profil."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "Ugyldig fil for mediatypen."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Fil"
|
msgstr "Fil"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Skildring av mediefila"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Du må velja ei fil."
|
msgstr "Du må velja ei fil."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "Fila verkar ikkje å vera ei gyldig biletefil."
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Johoo! Opplasta!"
|
msgstr "Johoo! Opplasta!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Bilete av stressa 404-tusse."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Oops."
|
msgstr "Oops."
|
||||||
|
|
||||||
@@ -159,33 +219,30 @@ msgstr ""
|
|||||||
"Er du sikker på at adressa er korrekt, so er sida truleg flytta eller "
|
"Er du sikker på at adressa er korrekt, so er sida truleg flytta eller "
|
||||||
"sletta."
|
"sletta."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Bilete av stressa 404-tusse."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "MediaGoblin"
|
msgstr "MediaGoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Last opp"
|
msgid "Add media"
|
||||||
|
msgstr "Legg til mediefiler"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "Stadfest epostadressa di"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Logg inn"
|
msgstr "Logg inn"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -197,91 +254,53 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr "Utforsk"
|
msgstr "Utforsk"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Hei der mediaentusiast, MediaGoblin..."
|
msgstr ""
|
||||||
|
|
||||||
|
#: 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 ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "Er ein perfekt plass for mediet ditt!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Er ein plass for folk å samarbeida og visa fram sjølvlaga og vidarebygde "
|
|
||||||
"verk."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
msgstr ""
|
||||||
"after all.)"
|
|
||||||
msgstr "Fri som i fridom (me er eit <a href=\"http://gnu.org\">GNU</a>-prosjekt)."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Arbeidar for å gjera verda ein betre stad gjennom desentralisering og (til "
|
|
||||||
"slutt, kjem snart!) federering, enkelt forklart deling og sending av "
|
|
||||||
"mediefiler og kommentarar over fleire nettstader."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr "Bygd for utviding (fleire medietypar kjem snart, m.a. video)."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Driven av folk som deg. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">Du kan hjelpa med å forbetra"
|
|
||||||
" MediaGoblin</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Lyst til å bli med oss?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Opprett ein "
|
|
||||||
"gratis konto</a> eller <a class=\"header_submit\" "
|
|
||||||
"href=\"http://wiki.mediagoblin.org/HackingHowto\">installer MediaGoblin på "
|
|
||||||
"eigen tenar</a>"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "Nyaste mediefiler"
|
msgstr "Nyaste mediefiler"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Fyll inn passord"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
msgid "Enter your username or email"
|
msgid "Set password"
|
||||||
msgstr "Fyll inn brukarnamn eller epost"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
msgid "Your password has been changed. Try to log in now."
|
msgid "Recover password"
|
||||||
msgstr "Passordet endra. Prøv å logga inn no."
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
msgid ""
|
msgid "Send instructions"
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sjekk innboksen din. Me har sendt deg ein epost med ei netadresse for "
|
|
||||||
"passordendring."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -308,27 +327,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Innlogging feila"
|
msgstr "Innlogging feila"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Har du ingen konto?"
|
msgstr "Har du ingen konto?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Lag ein!"
|
msgstr "Lag ein!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Gløymd passordet?"
|
msgstr "Gløymd passordet?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "Endra"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Lag ein konto."
|
msgstr "Lag ein konto."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Opprett"
|
msgstr "Opprett"
|
||||||
|
|
||||||
@@ -359,36 +374,114 @@ msgid "Cancel"
|
|||||||
msgstr "Bryt av"
|
msgstr "Bryt av"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Lagra"
|
msgstr "Lagra"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Endrar profilen til %(username)s"
|
msgstr "Endrar profilen til %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Merkelappar:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Last opp"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Send"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
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 mediefiler"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Fann ingen slik brukar"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -420,35 +513,45 @@ msgstr "Ingen media under handsaming"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Klarte ikkje handsama desse opplasta filene:"
|
msgstr "Klarte ikkje handsama desse opplasta filene:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "%(username)s sin profil"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Fann ingen slik brukar"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "Epostverifisering trengst."
|
msgstr "Epostverifisering trengst."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Nesten ferdig. Du treng berre aktivera kontoen."
|
msgstr "Nesten ferdig. Du treng berre aktivera kontoen."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr "Ein epost med instruksjonar kjem straks."
|
msgstr "Ein epost med instruksjonar kjem straks."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "I tilfelle det ikkje skjer:"
|
msgstr "I tilfelle det ikkje skjer:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Send ein ny epost"
|
msgstr "Send ein ny epost"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
msgstr "Dette brukarnamnet finst allereie, men det er ikkje aktivert."
|
msgstr "Dette brukarnamnet finst allereie, men det er ikkje aktivert."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -457,40 +560,36 @@ msgstr ""
|
|||||||
"Viss dette er deg, kan du <a href=\"%(login_url)s\">logga inn</a> for å få "
|
"Viss dette er deg, kan du <a href=\"%(login_url)s\">logga inn</a> for å få "
|
||||||
"tilsendt ny epost med stadfestingslenkje."
|
"tilsendt ny epost med stadfestingslenkje."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "%(username)s sin profil"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Her kan du fortelja om deg sjølv."
|
msgstr "Her kan du fortelja om deg sjølv."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Endra profil"
|
msgstr "Endra profil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Brukaren har ikkje fylt ut profilen sin (enno)."
|
msgstr "Brukaren har ikkje fylt ut profilen sin (enno)."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Sjå alle %(username)s sine mediefiler"
|
msgstr "Sjå alle %(username)s sine mediefiler"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
msgstr "Her kjem mediefilene dine. Ser ikkje ut til at du har lagt til noko."
|
msgstr "Her kjem mediefilene dine."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Legg til mediefiler"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
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 mediefiler her nett no."
|
||||||
|
|
||||||
@@ -502,31 +601,57 @@ msgstr " "
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom-kjelde"
|
msgstr "Atom-kjelde"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Nyare"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Eldre"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Innspel"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Eg er sikker eg vil sletta dette"
|
msgstr "Eg er sikker eg vil sletta dette"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:161
|
||||||
msgid "Comment posted!"
|
msgid "Your comment has been posted!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
msgid "You are about to delete another user's media. Proceed with caution."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Du er i ferd med å sletta ein annan brukar sine mediefiler. Trå varsamt."
|
"Du er i ferd med å sletta ein annan brukar sine mediefiler. Trå varsamt."
|
||||||
|
|||||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
# Translations template for PROJECT.
|
# Translations template for PROJECT.
|
||||||
# Copyright (C) 2011 ORGANIZATION
|
# Copyright (C) 2012 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
@@ -9,8 +9,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: GNU MediaGoblin\n"
|
"Project-Id-Version: GNU MediaGoblin\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n"
|
||||||
"POT-Creation-Date: 2011-11-01 23:14-0500\n"
|
"POT-Creation-Date: 2012-01-07 13:47-0600\n"
|
||||||
"PO-Revision-Date: 2011-11-02 04:13+0000\n"
|
"PO-Revision-Date: 2012-01-07 19:44+0000\n"
|
||||||
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
"Last-Translator: cwebber <cwebber@dustycloud.org>\n"
|
||||||
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n"
|
"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -20,28 +20,19 @@ msgstr ""
|
|||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49
|
#: mediagoblin/processing.py:143
|
||||||
|
msgid "Invalid file given for media type."
|
||||||
|
msgstr "Arquivo inválido para esse tipo de mídia"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Nome de Usuário"
|
msgstr "Nome de Usuário"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53
|
#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Senha"
|
msgstr "Senha"
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:35
|
#: mediagoblin/auth/forms.py:34
|
||||||
msgid "Passwords must match."
|
|
||||||
msgstr "Senhas devem ser iguais."
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:37
|
|
||||||
msgid "Confirm password"
|
|
||||||
msgstr "Confirmar senha"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:39
|
|
||||||
msgid "Type it again here to make sure there are no spelling mistakes."
|
|
||||||
msgstr ""
|
|
||||||
"Digite novamente aqui para ter certeza que não houve erros de digitação"
|
|
||||||
|
|
||||||
#: mediagoblin/auth/forms.py:42
|
|
||||||
msgid "Email address"
|
msgid "Email address"
|
||||||
msgstr "Endereço de email"
|
msgstr "Endereço de email"
|
||||||
|
|
||||||
@@ -54,10 +45,10 @@ msgid "Sorry, a user with that name already exists."
|
|||||||
msgstr "Desculpe, um usuário com este nome já existe."
|
msgstr "Desculpe, um usuário com este nome já existe."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:77
|
#: mediagoblin/auth/views.py:77
|
||||||
msgid "Sorry, that email address has already been taken."
|
msgid "Sorry, a user with that email address already exists."
|
||||||
msgstr "Desculpe, esse endereço de email já está em uso."
|
msgstr "Desculpe, um usuário com esse email já esta cadastrado"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:179
|
#: mediagoblin/auth/views.py:180
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your email address has been verified. You may now login, edit your profile, "
|
"Your email address has been verified. You may now login, edit your profile, "
|
||||||
"and submit images!"
|
"and submit images!"
|
||||||
@@ -65,15 +56,28 @@ msgstr ""
|
|||||||
"O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar"
|
"O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar"
|
||||||
" seu perfil, e enviar imagens!"
|
" seu perfil, e enviar imagens!"
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:185
|
#: mediagoblin/auth/views.py:186
|
||||||
msgid "The verification key or user id is incorrect"
|
msgid "The verification key or user id is incorrect"
|
||||||
msgstr "A chave de verificação ou nome usuário estão incorretos."
|
msgstr "A chave de verificação ou nome usuário estão incorretos."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:207
|
#: mediagoblin/auth/views.py:204
|
||||||
|
msgid "You must be logged in so we know who to send the email to!"
|
||||||
|
msgstr " "
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:212
|
||||||
|
msgid "You've already verified your email address!"
|
||||||
|
msgstr "Você já verifico seu email!"
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:225
|
||||||
msgid "Resent your verification email."
|
msgid "Resent your verification email."
|
||||||
msgstr "O email de verificação foi reenviado."
|
msgstr "O email de verificação foi reenviado."
|
||||||
|
|
||||||
#: mediagoblin/auth/views.py:248
|
#: mediagoblin/auth/views.py:260
|
||||||
|
msgid ""
|
||||||
|
"An email has been sent with instructions on how to change your password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:270
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not send password recovery email as your username is inactive or your "
|
"Could not send password recovery email as your username is inactive or your "
|
||||||
"account's email address has not been verified."
|
"account's email address has not been verified."
|
||||||
@@ -81,73 +85,127 @@ msgstr ""
|
|||||||
"Não foi possível enviar o email de recuperação de senha, pois seu nome de "
|
"Não foi possível enviar o email de recuperação de senha, pois seu nome de "
|
||||||
"usuário está inativo ou o email da sua conta não foi confirmado."
|
"usuário está inativo ou o email da sua conta não foi confirmado."
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:282
|
||||||
|
msgid "Couldn't find someone with that username or email."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/auth/views.py:330
|
||||||
|
msgid "You can now log in using your new password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27
|
||||||
msgid "Title"
|
msgid "Title"
|
||||||
msgstr "Título"
|
msgstr "Título"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32
|
#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30
|
||||||
|
msgid "Description of this work"
|
||||||
|
msgstr "Descrição desse trabalho"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35
|
||||||
msgid "Tags"
|
msgid "Tags"
|
||||||
msgstr "Etiquetas"
|
msgstr "Etiquetas"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:31
|
#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37
|
||||||
|
msgid "Separate tags by commas."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:37
|
||||||
msgid "Slug"
|
msgid "Slug"
|
||||||
msgstr "Arquivo"
|
msgstr "Arquivo"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:32
|
#: mediagoblin/edit/forms.py:38
|
||||||
msgid "The slug can't be empty"
|
msgid "The slug can't be empty"
|
||||||
msgstr "O arquivo não pode estar vazio"
|
msgstr "O arquivo não pode estar vazio"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:33
|
#: mediagoblin/edit/forms.py:39
|
||||||
msgid ""
|
msgid ""
|
||||||
"The title part of this media's URL. You usually don't need to change this."
|
"The title part of this media's address. You usually don't need to change "
|
||||||
|
"this."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"A parte título da URL dessa mídia. Geralmente não é necessário alterar isso."
|
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:40
|
#: mediagoblin/edit/forms.py:46
|
||||||
msgid "Bio"
|
msgid "Bio"
|
||||||
msgstr "Biografia"
|
msgstr "Biografia"
|
||||||
|
|
||||||
#: mediagoblin/edit/forms.py:43
|
#: mediagoblin/edit/forms.py:48
|
||||||
|
msgid ""
|
||||||
|
"You can use\n"
|
||||||
|
" <a href=\"http://daringfireball.net/projects/markdown/basics\">\n"
|
||||||
|
" Markdown</a> for formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:53
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Website"
|
msgstr "Website"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:64
|
#: mediagoblin/edit/forms.py:60
|
||||||
|
msgid "Old password"
|
||||||
|
msgstr "Senha antiga"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:62
|
||||||
|
msgid "Enter your old password to prove you own this account."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/forms.py:65
|
||||||
|
msgid "New password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:65
|
||||||
msgid "An entry with that slug already exists for this user."
|
msgid "An entry with that slug already exists for this user."
|
||||||
msgstr "Uma entrada com esse arquivo já existe para esse usuário"
|
msgstr "Uma entrada com esse arquivo já existe para esse usuário"
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:85
|
#: mediagoblin/edit/views.py:86
|
||||||
msgid "You are editing another user's media. Proceed with caution."
|
msgid "You are editing another user's media. Proceed with caution."
|
||||||
msgstr "Você está editando a mídia de outro usuário. Tenha cuidado."
|
msgstr "Você está editando a mídia de outro usuário. Tenha cuidado."
|
||||||
|
|
||||||
#: mediagoblin/edit/views.py:155
|
#: mediagoblin/edit/views.py:156
|
||||||
msgid "You are editing a user's profile. Proceed with caution."
|
msgid "You are editing a user's profile. Proceed with caution."
|
||||||
msgstr "Você está editando um perfil de usuário. Tenha cuidado."
|
msgstr "Você está editando um perfil de usuário. Tenha cuidado."
|
||||||
|
|
||||||
#: mediagoblin/process_media/errors.py:44
|
#: mediagoblin/edit/views.py:174
|
||||||
msgid "Invalid file given for media type."
|
msgid "Profile changes saved"
|
||||||
msgstr "Arquivo inválido para esse tipo de mídia"
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:200
|
||||||
|
msgid "Wrong password"
|
||||||
|
msgstr "Senha errada"
|
||||||
|
|
||||||
|
#: mediagoblin/edit/views.py:216
|
||||||
|
msgid "Account settings saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:77
|
||||||
|
msgid "Could not extract any file extension from \"{filename}\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/media_types/__init__.py:88
|
||||||
|
msgid "Sorry, I don't support that file type :("
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:25
|
#: mediagoblin/submit/forms.py:25
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Arquivo"
|
msgstr "Arquivo"
|
||||||
|
|
||||||
#: mediagoblin/submit/forms.py:30
|
#: mediagoblin/submit/views.py:50
|
||||||
msgid "Description of this work"
|
|
||||||
msgstr "Descrição desse trabalho"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:46
|
|
||||||
msgid "You must provide a file."
|
msgid "You must provide a file."
|
||||||
msgstr "Você deve fornecer um arquivo."
|
msgstr "Você deve fornecer um arquivo."
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:49
|
#: mediagoblin/submit/views.py:128
|
||||||
msgid "The file doesn't seem to be an image!"
|
|
||||||
msgstr "O arquivo não parece ser uma imagem!"
|
|
||||||
|
|
||||||
#: mediagoblin/submit/views.py:121
|
|
||||||
msgid "Woohoo! Submitted!"
|
msgid "Woohoo! Submitted!"
|
||||||
msgstr "Eba! Enviado!"
|
msgstr "Eba! Enviado!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:21
|
#: mediagoblin/templates/mediagoblin/404.html:22
|
||||||
|
msgid "Image of 404 goblin stressing out"
|
||||||
|
msgstr "Imagem do goblin 404 aparecendo"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/404.html:23
|
||||||
msgid "Oops!"
|
msgid "Oops!"
|
||||||
msgstr "Oops"
|
msgstr "Oops"
|
||||||
|
|
||||||
@@ -163,33 +221,30 @@ msgstr ""
|
|||||||
"Se você está certo de que o endereço está correto, talvez a página que "
|
"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"
|
"esteja procurando tenha sido apagada ou mudou de endereço"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/404.html:32
|
#: mediagoblin/templates/mediagoblin/base.html:48
|
||||||
msgid "Image of 404 goblin stressing out"
|
|
||||||
msgstr "Imagem do goblin 404 aparecendo"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:22
|
|
||||||
msgid "GNU MediaGoblin"
|
|
||||||
msgstr "GNU MediaGoblin"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:47
|
|
||||||
msgid "MediaGoblin logo"
|
msgid "MediaGoblin logo"
|
||||||
msgstr "Logo MediaGoblin"
|
msgstr "Logo MediaGoblin"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:52
|
#: mediagoblin/templates/mediagoblin/base.html:53
|
||||||
msgid "Submit media"
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:157
|
||||||
msgstr "Enviar mídia"
|
msgid "Add media"
|
||||||
|
msgstr "Adicionar mídia"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:63
|
#: mediagoblin/templates/mediagoblin/base.html:64
|
||||||
msgid "verify your email!"
|
msgid "Verify your email!"
|
||||||
msgstr "Verifique seu email!"
|
msgstr "Verifique seu email!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:73
|
#: mediagoblin/templates/mediagoblin/base.html:71
|
||||||
|
msgid "log out"
|
||||||
|
msgstr "Sair"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/base.html:74
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
#: mediagoblin/templates/mediagoblin/auth/login.html:27
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
#: mediagoblin/templates/mediagoblin/auth/login.html:45
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Entrar"
|
msgstr "Entrar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/base.html:89
|
#: mediagoblin/templates/mediagoblin/base.html:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
"Powered by <a href=\"http://mediagoblin.org\">MediaGoblin</a>, a <a "
|
||||||
"href=\"http://gnu.org/\">GNU</a> project"
|
"href=\"http://gnu.org/\">GNU</a> project"
|
||||||
@@ -201,93 +256,53 @@ msgstr ""
|
|||||||
msgid "Explore"
|
msgid "Explore"
|
||||||
msgstr "Explorar"
|
msgstr "Explorar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:27
|
#: mediagoblin/templates/mediagoblin/root.html:26
|
||||||
msgid "Hi there, media lover! MediaGoblin is..."
|
msgid "Hi there, welcome to this MediaGoblin site!"
|
||||||
msgstr "Olá amante de mídias. MediaGoblin é..."
|
msgstr "Olá, bemvindo ao site de 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 ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:29
|
#: mediagoblin/templates/mediagoblin/root.html:29
|
||||||
msgid "The perfect place for your media!"
|
|
||||||
msgstr "O lugar perfeito para sua mídia!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:30
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"A place for people to collaborate and show off original and derived "
|
"To add your own media, place comments, save your favourites and more, you "
|
||||||
"creations!"
|
"can log in with your MediaGoblin account."
|
||||||
msgstr " "
|
msgstr " "
|
||||||
"Um lugar para as pessoas colaborarem e mostrarem suas criações originais e "
|
|
||||||
"derivadas!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:31
|
#: mediagoblin/templates/mediagoblin/root.html:31
|
||||||
msgid ""
|
msgid "Don't have one yet? It's easy!"
|
||||||
"Free, as in freedom. (We’re a <a href=\"http://gnu.org\">GNU</a> project, "
|
|
||||||
"after all.)"
|
|
||||||
msgstr " "
|
msgstr " "
|
||||||
"Livre como a liberdade. (Afinal, somos um projeto <a "
|
|
||||||
"href=\"http://gnu.org\">GNU</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:32
|
#: mediagoblin/templates/mediagoblin/root.html:32
|
||||||
msgid ""
|
|
||||||
"Aiming to make the world a better place through decentralization and "
|
|
||||||
"(eventually, coming soon!) federation!"
|
|
||||||
msgstr ""
|
|
||||||
"Com o objetivo de fazer um mundo melhor através da descentralização e "
|
|
||||||
"(eventualmente, em breve) federação!"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:33
|
|
||||||
msgid ""
|
|
||||||
"Built for extensibility. (Multiple media types coming soon to the software,"
|
|
||||||
" including video support!)"
|
|
||||||
msgstr ""
|
|
||||||
"Construído para extensibilidade. (Múltiplos tipos de mídia em breve, "
|
|
||||||
"incluindo suporte a vídeo) "
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:34
|
|
||||||
msgid ""
|
|
||||||
"Powered by people like you. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this"
|
|
||||||
" software!</a>)"
|
|
||||||
msgstr ""
|
|
||||||
"Desenvolvido por pessoas como você. (<a "
|
|
||||||
"href=\"http://mediagoblin.org/pages/join.html\">Você pode ajudar a melhorar "
|
|
||||||
"esse software</a>)"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:38
|
|
||||||
msgid "Excited to join us?"
|
|
||||||
msgstr "Animado para juntar-se a nós?"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:39
|
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Create a free account</a>\n"
|
"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Create an account at this site</a>\n"
|
||||||
" or\n"
|
" or\n"
|
||||||
" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Set up MediaGoblin on your own server</a>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<a class=\"header_submit_highlight\" href=\"%(register_url)s\"> Crie uma conta grátis </a>\n"
|
|
||||||
" ou <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Configure seu próprio servidor MediaGoblin</a>\n"
|
|
||||||
" "
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/root.html:53
|
#: mediagoblin/templates/mediagoblin/root.html:40
|
||||||
msgid "Most recent media"
|
msgid "Most recent media"
|
||||||
msgstr "Mídia mais recente"
|
msgstr "Mídia mais recente"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32
|
||||||
msgid "Enter your new password"
|
msgid "Set your new password"
|
||||||
msgstr "Digite sua nova senha"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29
|
|
||||||
msgid "Enter your username or email"
|
|
||||||
msgstr "Digite seu nome de usuário ou email"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22
|
|
||||||
msgid "Your password has been changed. Try to log in now."
|
|
||||||
msgstr "Sua senha foi alterada. Tente entrar agora."
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22
|
|
||||||
msgid ""
|
|
||||||
"Check your inbox. We sent an email with a URL for changing your password."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Verifique sua caixa de entrada. Mandamos um email com a URL para troca da "
|
|
||||||
"senha"
|
#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35
|
||||||
|
msgid "Set password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27
|
||||||
|
msgid "Recover password"
|
||||||
|
msgstr "Recuperar senha"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30
|
||||||
|
msgid "Send instructions"
|
||||||
|
msgstr "Mandar instruções"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -315,27 +330,23 @@ msgstr ""
|
|||||||
msgid "Logging in failed!"
|
msgid "Logging in failed!"
|
||||||
msgstr "Autenticação falhou"
|
msgstr "Autenticação falhou"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:43
|
#: mediagoblin/templates/mediagoblin/auth/login.html:35
|
||||||
msgid "Don't have an account yet?"
|
msgid "Don't have an account yet?"
|
||||||
msgstr "Ainda não tem conta?"
|
msgstr "Ainda não tem conta?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:46
|
#: mediagoblin/templates/mediagoblin/auth/login.html:36
|
||||||
msgid "Create one here!"
|
msgid "Create one here!"
|
||||||
msgstr "Crie uma aqui!"
|
msgstr "Crie uma aqui!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:49
|
#: mediagoblin/templates/mediagoblin/auth/login.html:42
|
||||||
msgid "Forgot your password?"
|
msgid "Forgot your password?"
|
||||||
msgstr "Esqueceu sua senha?"
|
msgstr "Esqueceu sua senha?"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/login.html:52
|
#: mediagoblin/templates/mediagoblin/auth/register.html:32
|
||||||
msgid "Change it!"
|
|
||||||
msgstr "Altere-a"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:27
|
|
||||||
msgid "Create an account!"
|
msgid "Create an account!"
|
||||||
msgstr "Criar uma conta!"
|
msgstr "Criar uma conta!"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/auth/register.html:31
|
#: mediagoblin/templates/mediagoblin/auth/register.html:36
|
||||||
msgid "Create"
|
msgid "Create"
|
||||||
msgstr "Criar"
|
msgstr "Criar"
|
||||||
|
|
||||||
@@ -366,36 +377,114 @@ msgid "Cancel"
|
|||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
#: mediagoblin/templates/mediagoblin/edit/edit.html:37
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35
|
||||||
msgid "Save changes"
|
msgid "Save changes"
|
||||||
msgstr "Salvar mudanças"
|
msgstr "Salvar mudanças"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34
|
||||||
|
#, python-format
|
||||||
|
msgid "Changing %(username)s's account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Editing %(username)s's profile"
|
msgid "Editing %(username)s's profile"
|
||||||
msgstr "Editando perfil de %(username)s"
|
msgstr "Editando perfil de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/listings/tag.html:31
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:30
|
||||||
msgid "Media tagged with:"
|
#: mediagoblin/templates/mediagoblin/listings/tag.html:35
|
||||||
msgstr "Mídia marcada como:"
|
#, python-format
|
||||||
|
msgid "Media tagged with: %(tag_name)s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:46
|
||||||
|
msgid "Original"
|
||||||
|
msgstr "Original"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:33
|
||||||
|
msgid ""
|
||||||
|
"Sorry, this video will not work because \n"
|
||||||
|
"\t your web browser does not support HTML5 \n"
|
||||||
|
"\t video."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/media_displays/video.html:36
|
||||||
|
msgid ""
|
||||||
|
"You can get a modern web browser that \n"
|
||||||
|
"\t can play this video at <a href=\"http://getfirefox.com\">\n"
|
||||||
|
"\t http://getfirefox.com</a>!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
#: mediagoblin/templates/mediagoblin/submit/start.html:26
|
||||||
msgid "Submit yer media"
|
msgid "Add your media"
|
||||||
msgstr "Envie sua mídia"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
#: mediagoblin/templates/mediagoblin/submit/start.html:30
|
||||||
msgid "Submit"
|
msgid "Add"
|
||||||
msgstr "Enviar"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's media"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
msgid "<a href=\"%(user_url)s\">%(username)s</a>'s media"
|
||||||
msgstr "Mídia de <a href=\"%(user_url)s\"> %(username)s </a> "
|
msgstr "Mídia de <a href=\"%(user_url)s\"> %(username)s </a> "
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:60
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:32
|
#, python-format
|
||||||
msgid "Sorry, no such user found."
|
msgid "Added on %(date)s."
|
||||||
msgstr "Desculpe, esse usuário não foi encontrado."
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:69
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:73
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Apagar"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:79
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:81
|
||||||
|
#, python-format
|
||||||
|
msgid "%(comment_count)s comments"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:83
|
||||||
|
msgid "No comments yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:91
|
||||||
|
msgid "Add one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:100
|
||||||
|
msgid ""
|
||||||
|
"Type your comment here. You can use <a "
|
||||||
|
"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a> for"
|
||||||
|
" formatting."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:104
|
||||||
|
msgid "Add this comment"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:126
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/media.html:141
|
||||||
|
#, python-format
|
||||||
|
msgid "<p>❖ Browsing media by <a href=\"%(user_url)s\">%(username)s</a></p>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30
|
||||||
#, python-format
|
#, python-format
|
||||||
@@ -428,29 +517,39 @@ msgstr "Nenhuma mídia em processo"
|
|||||||
msgid "These uploads failed to process:"
|
msgid "These uploads failed to process:"
|
||||||
msgstr "Esses envios não foram processados:"
|
msgstr "Esses envios não foram processados:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:39
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:31
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:59
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:89
|
||||||
|
#, python-format
|
||||||
|
msgid "%(username)s's profile"
|
||||||
|
msgstr "Perfil de %(username)s"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:43
|
||||||
|
msgid "Sorry, no such user found."
|
||||||
|
msgstr "Desculpe, esse usuário não foi encontrado."
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:50
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:70
|
||||||
msgid "Email verification needed"
|
msgid "Email verification needed"
|
||||||
msgstr "Verificação de email necessária"
|
msgstr "Verificação de email necessária"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:42
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:53
|
||||||
msgid "Almost done! Your account still needs to be activated."
|
msgid "Almost done! Your account still needs to be activated."
|
||||||
msgstr "Quase pronto! Sua conta ainda precisa ser ativada"
|
msgstr "Quase pronto! Sua conta ainda precisa ser ativada"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:47
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:58
|
||||||
msgid ""
|
msgid ""
|
||||||
"An email should arrive in a few moments with instructions on how to do so."
|
"An email should arrive in a few moments with instructions on how to do so."
|
||||||
msgstr "Um email deve chegar em instantes com instruções de como fazê-lo."
|
msgstr "Um email deve chegar em instantes com instruções de como fazê-lo."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:51
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
||||||
msgid "In case it doesn't:"
|
msgid "In case it doesn't:"
|
||||||
msgstr "Caso contrário:"
|
msgstr "Caso contrário:"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:54
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:65
|
||||||
msgid "Resend verification email"
|
msgid "Resend verification email"
|
||||||
msgstr "Reenviar email de verificação"
|
msgstr "Reenviar email de verificação"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:62
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Someone has registered an account with this username, but it still has to be"
|
"Someone has registered an account with this username, but it still has to be"
|
||||||
" activated."
|
" activated."
|
||||||
@@ -458,7 +557,7 @@ msgstr ""
|
|||||||
"Alguém registrou uma conta com esse nome de usuário, mas ainda precisa ser "
|
"Alguém registrou uma conta com esse nome de usuário, mas ainda precisa ser "
|
||||||
"ativada."
|
"ativada."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:68
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:79
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you are that person but you've lost your verification email, you can <a "
|
"If you are that person but you've lost your verification email, you can <a "
|
||||||
@@ -467,30 +566,29 @@ msgstr ""
|
|||||||
"Se você é essa pessoa, mas você perdeu seu e-mail de verificação, você pode "
|
"Se você é essa pessoa, mas você perdeu seu e-mail de verificação, você pode "
|
||||||
"<a href=\"%(login_url)s\">efetuar login</a> e reenviá-la."
|
"<a href=\"%(login_url)s\">efetuar login</a> e reenviá-la."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:78
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
||||||
#, python-format
|
|
||||||
msgid "%(username)s's profile"
|
|
||||||
msgstr "Perfil de %(username)s"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:85
|
|
||||||
msgid "Here's a spot to tell others about yourself."
|
msgid "Here's a spot to tell others about yourself."
|
||||||
msgstr "Aqui é o lugar onde você fala de si para os outros."
|
msgstr "Aqui é o lugar onde você fala de si para os outros."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:90
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:101
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:108
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:118
|
||||||
msgid "Edit profile"
|
msgid "Edit profile"
|
||||||
msgstr "Editar perfil"
|
msgstr "Editar perfil"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:96
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:106
|
||||||
msgid "This user hasn't filled in their profile (yet)."
|
msgid "This user hasn't filled in their profile (yet)."
|
||||||
msgstr "Esse usuário não preencheu seu perfil (ainda)."
|
msgstr "Esse usuário não preencheu seu perfil (ainda)."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:122
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:125
|
||||||
|
msgid "Change account settings"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:138
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "View all of %(username)s's media"
|
msgid "View all of %(username)s's media"
|
||||||
msgstr "Ver todas as mídias de %(username)s"
|
msgstr "Ver todas as mídias de %(username)s"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:135
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is where your media will appear, but you don't seem to have added "
|
"This is where your media will appear, but you don't seem to have added "
|
||||||
"anything yet."
|
"anything yet."
|
||||||
@@ -498,11 +596,8 @@ msgstr ""
|
|||||||
"Aqui é onde sua mídia vai aparecer, mas parece que você não adicionou nada "
|
"Aqui é onde sua mídia vai aparecer, mas parece que você não adicionou nada "
|
||||||
"ainda."
|
"ainda."
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:141
|
#: mediagoblin/templates/mediagoblin/user_pages/user.html:163
|
||||||
msgid "Add media"
|
#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72
|
||||||
msgstr "Adicionar mídia"
|
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/user_pages/user.html:147
|
|
||||||
msgid "There doesn't seem to be any media here yet..."
|
msgid "There doesn't seem to be any media here yet..."
|
||||||
msgstr "Aparentemente não há nenhuma mídia aqui ainda..."
|
msgstr "Aparentemente não há nenhuma mídia aqui ainda..."
|
||||||
|
|
||||||
@@ -514,31 +609,57 @@ msgstr "ícone feed"
|
|||||||
msgid "Atom feed"
|
msgid "Atom feed"
|
||||||
msgstr "Atom feed"
|
msgstr "Atom feed"
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:40
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:39
|
||||||
msgid "Newer"
|
msgid "← Newer"
|
||||||
msgstr "Mais novo"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/templates/mediagoblin/utils/pagination.html:46
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:45
|
||||||
msgid "Older"
|
msgid "Older →"
|
||||||
msgstr "Mais velho"
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:24
|
#: mediagoblin/templates/mediagoblin/utils/pagination.html:48
|
||||||
msgid "Comment"
|
msgid "Go to page:"
|
||||||
msgstr "Comentário"
|
msgstr "Ir a página:"
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32
|
||||||
|
msgid "newer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43
|
||||||
|
msgid "older"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:20
|
||||||
|
msgid "View more media tagged with"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: mediagoblin/templates/mediagoblin/utils/tags.html:25
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/forms.py:30
|
#: mediagoblin/user_pages/forms.py:30
|
||||||
msgid "I am sure I want to delete this"
|
msgid "I am sure I want to delete this"
|
||||||
msgstr "Eu tenho certeza de que quero pagar isso"
|
msgstr "Eu tenho certeza de que quero pagar isso"
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:142
|
#: mediagoblin/user_pages/views.py:155
|
||||||
msgid "Empty comments are not allowed."
|
msgid "Oops, your comment was empty."
|
||||||
|
msgstr "Opa, seu comentáio estava vazio."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:161
|
||||||
|
msgid "Your comment has been posted!"
|
||||||
|
msgstr "Seu comentário foi postado!"
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:183
|
||||||
|
msgid "You deleted the media."
|
||||||
|
msgstr "Você deletou a mídia."
|
||||||
|
|
||||||
|
#: mediagoblin/user_pages/views.py:190
|
||||||
|
msgid "The media was not deleted because you didn't check that you were sure."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:148
|
#: mediagoblin/user_pages/views.py:198
|
||||||
msgid "Comment posted!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: mediagoblin/user_pages/views.py:181
|
|
||||||
msgid "You are about to delete another user's media. Proceed with caution."
|
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."
|
msgstr "Você vai apagar uma mídia de outro usuário. Tenha cuidado."
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user