Compare commits

..

No commits in common. "main" and "0.2.5" have entirely different histories.
main ... 0.2.5

102 changed files with 3278 additions and 11582 deletions

14
.gitignore vendored
View file

@ -1,12 +1,4 @@
*.egg-info/
*.mo
*.pot
*.pyc
.*.swp
.coverage
.idea/
.ropeproject/
/dist/
data/
debianmemberportfolio/model/keyringcache.db
tags
*.pyc
*.egg-info/
.coverage

View file

@ -1,14 +0,0 @@
---
version: 2
build:
os: ubuntu-22.04
tools:
python: "3.11"
sphinx:
configuration: docs/source/conf.py
python:
install:
- requirements: docs/doc-requirements.txt

View file

@ -1,90 +1,3 @@
2023-06-03 Jan Dittberner <jan@dittberner.info>
* add updated translations from Weblate
* switch to Poetry for dependency management
* describe translation workflow in developer documentation
* fix internal server error when name is missing for non Debian member (thanks Paul Wise for the report)
* fix unicode handling in urlbuilder (thanks Paul Wise for the report)
2022-09-24 Jan Dittberner <jan@dittberner.info>
* add updated translations from Weblate
* update dependencies
* replace gpg and pgp with OpenPGP (thanks Guillem Jover)
* remove flattr code
2021-10-24 Jan Dittberner <jan@dittberner.info>
* add updated translations from Weblate
* fix NM URL (thanks Diederik de Haas)
2021-07-03 Jan Dittberner <jan@dittberner.info>
* Add translations from Weblate
* remove a dead services (thanks Juri Grabowski)
2020-02-22 Jan Dittberner <jan@dittberner.info>
* Update translations
2018-05-12 Jan Dittberner <jan@dittberner.info>
* add patch by Paul Wise to provide Repology information links
* Update translations
2018-02-09 Jan Dittberner <jan@dittberner.info>
* add patch by Paul Wise to provide Salsa links
* Update translations
2015-11-12 Jan Dittberner <jan@dittberner.info>
* port to Python 3 and Flask
2015-03-09 Jan Dittberner <jan@dittberner.info>
* apply patch for DMD link by Paul Wise
2015-02-20 Jan Dittberner <jan@dittberner.info>
* add Jessie requirements file
* fix language check if no Accept-Language header is sent
2014-10-14 Jan Dittberner <jan@dittberner.info>
* add patch by Paul Wise to use to update DUCK link to new static page
* add patch by Paul Wise to remove generated files from version
control
* add patch by Paul Wise to use https in links, comments, docstrings,
etc.
2014-04-10 Jan Dittberner <jan@dittberner.info>
* add patch by Paul Wise to use SSL where available
* add patch by Paul Wise to fix link to the contributors site
2014-02-09 Jan Dittberner <jan@dittberner.info>
* renamed module from ddportfolio to debianmemberportfolio
* add patch for DUCK URL by Paul Wise
2014-02-08 Jan Dittberner <jan@dittberner.info>
* moved to new server
* ported to Wheezy versions of the dependencies
* applied patches by Paul Wise and Olivier Berger
* update Sphinx documentation
* check responses in controller unit tests
* update copyright years of files
2013-02-24 Jan Dittberner <jan@dittberner.info>
* add sphinx documentation
* applied multiple patches by Paul Wise
2012-12-08 Jan Dittberner <jan@dittberner.info>
* include patch for Debian URL checker by Paul Wise
* add link to Transifex translation project
2012-11-21 Jan Dittberner <jan@dittberner.info>
* add pip requirements file with Debian Squeeze versions
* add indonesian translation by Izharul Haq
2012-06-19 Jan Dittberner <jan@dittberner.info>
* add portuguese (Brasil) translation by Daniel Manzano
2012-05-18 Jan Dittberner <jan@dittberner.info>
* add french translation by Stéphane Aulery
2012-03-04 Jan Dittberner <jan@dittberner.info>
* update debtags location

View file

@ -1,2 +1,3 @@
recursive-include debianmemberportfolio/static *
recursive-include debianmemberportfolio/templates *
include newpylonsapp/config/deployment.ini_tmpl
recursive-include ddportfolioservice/public *
recursive-include ddportfolioservice/templates *

View file

@ -1,14 +0,0 @@
# Debian Member Portfolio Service
This is a service implementation that returns a set of personalized URLs as outlined in
https://wiki.debian.org/DDPortfolio. It takes the Debian Member's full name and email address as input and returns
a JSON formatted array or an HTML page of URLs.
See https://debian-member-portfolio-service.readthedocs.org/ for more documentation (or its source in
docs/source/devdocs.rst), including how to configure a development environment.
## Translations
Translations for the Debian Member Portfolio service are maintained using
[Weblate](https://hosted.weblate.org/projects/debian-member-portfolio-service/translations/). Thanks to Weblate for
hosting the translation service and to all contributors of translations.

20
README.txt Normal file
View file

@ -0,0 +1,20 @@
This file is for you to describe the ddportfolioservice
application. Typically you would include information such as the
information below:
Installation and Setup
======================
Install ``ddportfolioservice`` using easy_install::
easy_install ddportfolioservice
Make a config file as follows::
paster make-config ddportfolioservice config.ini
Tweak the config file as appropriate and then setup the application::
paster setup-app config.ini
Then you are ready to go.

View file

@ -1,7 +1,7 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -643,7 +643,7 @@ the "copyright" line and a pointer to where the full notice is found.
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 <https://www.gnu.org/licenses/>.
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
@ -658,4 +658,4 @@ specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.
<http://www.gnu.org/licenses/>.

View file

@ -1,3 +0,0 @@
[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_

View file

@ -1,33 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service Flask configuration
#
# Copyright © 2015 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
WTF_CSRF_ENABLED = False
# available languages
LANGUAGES = {
'en': 'English',
'de': 'Deutsch',
'fr': 'Français',
'id': 'Bahasa Indonesia',
'pt_BR': 'Portuguese (Brazil)'
}

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service package
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service config package
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,60 @@
#
# ddportfolioservice - Pylons configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
[DEFAULT]
debug = true
email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = paste@localhost
[server:main]
use = egg:Paste#http
host = 0.0.0.0
port = 5000
[app:main]
use = egg:ddportfolioservice
full_stack = true
static_files = true
cache_dir = %(here)s/data
beaker.session.key = ddportfolioservice
beaker.session.secret = ${app_instance_secret}
app_instance_uuid = ${app_instance_uuid}
# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
#beaker.cache.data_dir = %(here)s/data/cache
#beaker.session.data_dir = %(here)s/data/sessions
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
set debug = false
# Logging configuration
[loggers]
keys = root
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s

View file

@ -0,0 +1,71 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service environment configuration
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Pylons environment configuration"""
import os
from mako.lookup import TemplateLookup
from pylons.configuration import PylonsConfig
from pylons.error import handle_mako_error
import ddportfolioservice.lib.app_globals as app_globals
import ddportfolioservice.lib.helpers
from ddportfolioservice.config.routing import make_map
def load_environment(global_conf, app_conf):
"""
Configure the Pylons environment via the ``pylons.config`` object
"""
config = PylonsConfig()
# Pylons paths
root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
paths = dict(root=root,
controllers=os.path.join(root, 'controllers'),
static_files=os.path.join(root, 'public'),
templates=[os.path.join(root, 'templates')])
# Initialize config with the basic options
config.init_app(
global_conf, app_conf, package='ddportfolioservice', paths=paths)
config['routes.map'] = make_map(config)
config['pylons.app_globals'] = app_globals.Globals(config)
config['pylons.h'] = ddportfolioservice.lib.helpers
# Setup cache object as early as possible
import pylons
pylons.cache._push_object(config['pylons.app_globals'].cache)
# Create the Mako TemplateLookup, with the default auto-escaping
config['pylons.app_globals'].mako_lookup = TemplateLookup(
directories=paths['templates'],
error_handler=handle_mako_error,
module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
input_encoding='utf-8', default_filters=['escape'],
imports=['from webhelpers.html import escape'])
# CONFIGURATION OPTIONS HERE (note: all config options will override
# any Pylons config options)
return config

View file

@ -0,0 +1,90 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service middleware configuration
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Pylons middleware initialization"""
from beaker.middleware import SessionMiddleware
from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
from paste.deploy.converters import asbool
from pylons.middleware import ErrorHandler, StatusCodeRedirect
from pylons.wsgiapp import PylonsApp
from routes.middleware import RoutesMiddleware
from ddportfolioservice.config.environment import load_environment
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
"""Create a Pylons WSGI application and return it
``global_conf``
The inherited configuration for this application. Normally from
the [DEFAULT] section of the Paste ini file.
``full_stack``
Whether this application provides a full WSGI stack (by default,
meaning it handles its own exceptions and errors). Disable
full_stack when this application is "managed" by another WSGI
middleware.
``static_files``
Whether this application serves its own static files; disable
when another web server is responsible for serving them.
``app_conf``
The application's local configuration. Normally specified in
the [app:<name>] section of the Paste ini file (where <name>
defaults to main).
"""
# Configure the Pylons environment
config = load_environment(global_conf, app_conf)
# The Pylons WSGI app
app = PylonsApp(config=config)
# Routing/Session/Cache Middleware
app = RoutesMiddleware(app, config['routes.map'])
app = SessionMiddleware(app, config)
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
if asbool(full_stack):
# Handle Python exceptions
app = ErrorHandler(app, global_conf, **config['pylons.errorware'])
# Display error documents for 401, 403, 404 status codes (and
# 500 when debug is disabled)
if asbool(config['debug']):
app = StatusCodeRedirect(app)
else:
app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])
# Establish the Registry for this application
app = RegistryManager(app)
if asbool(static_files):
# Serve static files
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
app.config = config
return app

View file

@ -0,0 +1,52 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service routing configuration
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Routes configuration
The more specific and detailed routes should be defined first so they
may take precedent over the more generic routes. For more information
refer to the routes manual at http://routes.groovie.org/docs/
"""
from routes import Mapper
def make_map(config):
"""Create, configure and return the routes Mapper"""
map = Mapper(directory=config['pylons.paths']['controllers'],
always_scan=config['debug'], explicit=True)
map.minimization = False
# The ErrorController route (handles 404/500 error pages); it should
# likely stay at the top, ensuring it can always be resolved
map.connect('/error/{action}', controller='error')
map.connect('/error/{action}/{id}', controller='error')
# CUSTOM ROUTES HERE
map.connect('/', controller='ddportfolio', action='index')
map.connect('/result', controller='ddportfolio', action='urllist')
map.connect('/htmlformhelper.js', controller='showformscripts',
action='index')
map.connect('/{controller}/{action}')
map.connect('/{controller}/{action}/{id}')
return map

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service controllers package
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,196 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 logging
import simplejson
from pylons import request, response, tmpl_context as c
from pylons.i18n import N_, _
import formencode.api
import formencode.validators
from ddportfolioservice.lib.base import BaseController, render
from ddportfolioservice.model.form import DDDataRequest, DeveloperData
from ddportfolioservice.model.urlbuilder import build_urls
from ddportfolioservice.model import dddatabuilder
log = logging.getLogger(__name__)
class DdportfolioController(BaseController):
_LABELS = {
'overview': {
'label': N_('Overview'),
'ddpo': N_("Debian Member's Package Overview"),
'alladdresses': N_("""Debian Member's Package Overview
... showing all email addresses"""),
},
'bugs': {
'label': N_('Bugs'),
'received': N_('''bugs received
(note: co-maintainers not listed, see \
<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?\
bug=430986">#430986</a>)'''),
'reported': N_('bugs reported'),
'bugstats': N_('bugstats AKA <em>karma</em>'),
'usertags': N_('user tags'),
'searchall': N_('all messages (i.e., full text search for \
developer name on all bug logs)'),
'wnpp': N_('<a href="http://wiki.debian.org/WNPP">WNPP</a>'),
'correspondent': N_('correspondent for bugs'),
'graph': N_('one year open bug history graph'),
},
'build': {
'label': N_('Build'),
'buildd': N_('buildd.d.o'),
'igloo': N_('igloo'),
},
'qa': {
'label': N_('Quality Assurance'),
'lintian': N_('lintian reports'),
'lintianfull': N_('full lintian reports (i.e. including \
"info"-level messages)'),
'dehs': N_('DEHS (Debian External Health Status)'),
'piuparts': N_('piuparts'),
'patchtracker': N_('Debian patch tracking system'),
},
'upload': {
'label': N_('Upload'),
'keylog': N_('''keylog (per-key upload list)
(note: uses key fingerprint)'''),
},
'lists': {
'label': N_('Mailing Lists'),
'dolists': N_('lists.d.o'),
'adolists': N_('lists.a.d.o'),
'gmane': N_('gmane'),
},
'files': {
'label': N_('Files'),
'people': N_('people.d.o'),
'oldpeople': N_('oldpeople'),
'alioth': N_('Alioth'),
},
'membership': {
'label': N_('Membership'),
'nm': N_('NM'),
'dbfinger': N_('DB information via finger'),
'db': N_('DB information via HTTP'),
'alioth': N_('Alioth'),
'wiki': N_('Wiki'),
'forum': N_('Forum'),
},
'miscellaneous': {
'label': N_('Miscellaneous'),
'debtags': N_('debtags'),
'links': N_('links'),
'website': N_('Debian website'),
'search': N_('Debian search'),
'gpgfinger': N_('GPG public key via finger'),
'gpgweb': N_('GPG public key via HTTP'),
},
'ssh': {
'label': N_('Information reachable via ssh (for Debian Members)'),
'owndndoms': N_('owned debian.net domains'),
'miainfo': N_('<a href="http://wiki.debian.org/qa.debian.org/'
'MIATeam">MIA</a> database information'),
'groupinfo': N_('Group membership information'),
},
'ubuntu': {
'label': N_('Ubuntu'),
'ubuntudiff': N_('Available patches from Ubuntu'),
},
}
def _get_label(self, section, url=None):
if section in self._LABELS:
if url:
if url in self._LABELS[section]:
return self._LABELS[section][url]
elif 'label' in self._LABELS[section]:
return self._LABELS[section]['label']
if url:
return "%s.%s" % (section, url)
return section
def index(self):
"""
Render the input form.
"""
return render('/showform.mako')
def urllist(self):
"""Handle the actual data."""
schema = DDDataRequest()
try:
formencode.api.set_stdtranslation(
domain="FormEncode",
languages=[lang[0:2] for lang in request.languages])
form_result = schema.to_python(request.params)
except formencode.validators.Invalid, error:
c.messages = {'errors': error.unpack_errors()}
return render('/showform.mako')
fields = dddatabuilder.build_data(form_result['email'])
rp = request.params.copy()
DM_TUPLES = (('name', 'name'),
('gpgfp', 'gpgfp'),
('nonddemail', 'email'))
DD_TUPLES = (('username', 'username'),
('aliothusername', 'username'))
if fields['type'] in (dddatabuilder.TYPE_DD, dddatabuilder.TYPE_DM):
for tuple in DM_TUPLES:
if not tuple[0] in rp or not rp[tuple[0]]:
rp[tuple[0]] = fields[tuple[1]]
if fields['type'] == dddatabuilder.TYPE_DD:
for tuple in DD_TUPLES:
if not tuple[0] in rp or not rp[tuple[0]]:
rp[tuple[0]] = fields[tuple[1]]
schema = DeveloperData()
try:
formencode.api.set_stdtranslation(
domain="FormEncode",
languages=[lang[0:2] for lang in request.languages])
form_result = schema.to_python(rp)
except formencode.validators.Invalid, error:
c.messages = {'errors': error.unpack_errors()}
return render('/showform.mako')
if form_result['wikihomepage'] is None:
log.debug('generate wikihomepage from name')
form_result['wikihomepage'] = "".join(
[part.capitalize() for part in form_result['name'].split()])
data = build_urls(form_result)
if form_result['mode'] == 'json':
response.headers['Content-Type'] = 'text/javascript'
return simplejson.dumps(
dict([("%s.%s" % \
(entry[1], entry[2].name), entry[3]) \
for entry in data if entry[0] == 'url']))
for entry in data:
if entry[0] in ('url', 'error'):
entry.append(_(self._get_label(entry[1], entry[2].name)))
elif entry[0] == 'section':
entry.append(_(self._get_label(entry[1])))
c.urldata = data
return render('/showurls.mako')

View file

@ -0,0 +1,70 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service ErrorController
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 cgi
from paste.urlparser import PkgResourcesParser
from pylons import request
from pylons.controllers.util import forward
from pylons.middleware import error_document_template
from webhelpers.html.builder import literal
from ddportfolioservice.lib.base import BaseController
class ErrorController(BaseController):
"""Generates error documents as and when they are required.
The ErrorDocuments middleware forwards to ErrorController when error
related status codes are returned from the application.
This behaviour can be altered by changing the parameters to the
ErrorDocuments middleware in your config/middleware.py file.
"""
def document(self):
"""Render the error document"""
resp = request.environ.get('pylons.original_response')
content = literal(resp.body) or cgi.escape(
request.GET.get('message', ''))
page = error_document_template % \
dict(prefix=request.environ.get('SCRIPT_NAME', ''),
code=cgi.escape(
request.GET.get('code', str(resp.status_int))),
message=content)
return page
def img(self, id):
"""Serve Pylons' stock images"""
return self._serve_file('/'.join(['media/img', id]))
def style(self, id):
"""Serve Pylons' stock stylesheets"""
return self._serve_file('/'.join(['media/style', id]))
def _serve_file(self, path):
"""
Call Paste's FileApp (a WSGI application) to serve the file at
the specified path
"""
request.environ['PATH_INFO'] = '/%s' % path
return forward(PkgResourcesParser('pylons', 'pylons'))

View file

@ -0,0 +1,69 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service ShowformscriptController.
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 logging
import simplejson
from pylons import request, response
from pylons.controllers.util import abort
import formencode.api
import formencode.validators
from ddportfolioservice.lib.base import BaseController, render
from ddportfolioservice.model.form import DDDataRequest
from ddportfolioservice.model import dddatabuilder
log = logging.getLogger(__name__)
class ShowformscriptsController(BaseController):
"""This controller is used to support data entry in showform.
It provides code for generating JavaScript as well as JSON
responses for autocompletion of fields."""
def index(self):
"""
This action generates the helper script for the showform page.
"""
response.headers['Content-Type'] = 'text/javascript; charset=utf-8'
return render('/showformscript.mako')
def fetchdddata(self):
"""
This action fetches the data for a given mail address and
returns them as JSON.
"""
schema = DDDataRequest()
try:
formencode.api.set_stdtranslation(
domain="FormEncode",
languages=[lang[0:2] for lang in request.languages])
form_result = schema.to_python(request.params)
except formencode.validators.Invalid, error:
errors = error.unpack_errors()
abort(400, "\n".join(
["%s: %s" % (key, errors[key]) for key in errors]))
fields = dddatabuilder.build_data(form_result['email'])
log.debug(fields)
response.headers['Content-Type'] = 'text/plain'
return simplejson.dumps(fields)

View file

@ -0,0 +1,50 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service TemplateController
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
#
from ddportfolioservice.lib.base import BaseController
class TemplateController(BaseController):
def view(self, url):
"""By default, the final controller tried to fulfill the request
when no other routes match. It may be used to display a template
when all else fails, e.g.::
def view(self, url):
return render('/%s' % url)
Or if you're using Mako and want to explicitly send a 404 (Not
Found) response code when the requested template doesn't exist::
import mako.exceptions
def view(self, url):
try:
return render('/%s' % url)
except mako.exceptions.TopLevelLookupException:
abort(404)
By default this controller aborts the request with a 404 (Not
Found)
"""
abort(404)

View file

@ -0,0 +1,378 @@
# Translations template for ddportfolioservice.
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the ddportfolioservice
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ddportfolioservice 0.2.1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2012-01-07 01:16+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.5\n"
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:42
msgid "Debian Member's Package Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:43
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:47
msgid "Bugs"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:48
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"http://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:52
msgid "bugs reported"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:53
msgid "bugstats AKA <em>karma</em>"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:54
msgid "user tags"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:55
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:57
msgid "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:58
msgid "correspondent for bugs"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:59
msgid "one year open bug history graph"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:62
msgid "Build"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:63
msgid "buildd.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:64
msgid "igloo"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:67
msgid "Quality Assurance"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "lintian reports"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:69
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:71
msgid "DEHS (Debian External Health Status)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:72
msgid "piuparts"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:73
msgid "Debian patch tracking system"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "Upload"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:77
msgid ""
"keylog (per-key upload list)\n"
"(note: uses key fingerprint)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "Mailing Lists"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:82
msgid "lists.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:83
msgid "lists.a.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:84
msgid "gmane"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "Files"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "people.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:89
msgid "oldpeople"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:97
msgid "Alioth"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "Membership"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:94
msgid "NM"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:95
msgid "DB information via finger"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:96
msgid "DB information via HTTP"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:98
msgid "Wiki"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:99
msgid "Forum"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:102
msgid "Miscellaneous"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:103
msgid "debtags"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:104
msgid "links"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:105
msgid "Debian website"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:106
msgid "Debian search"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:107
msgid "GPG public key via finger"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:108
msgid "GPG public key via HTTP"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "owned debian.net domains"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:113
msgid ""
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:114
msgid "Group membership information"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:117
msgid "Ubuntu"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:118
msgid "Available patches from Ubuntu"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:40
msgid "Email address"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:41
msgid "Name"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:42
msgid "GPG fingerprint"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:43
msgid "Debian user name"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:44
msgid "Non Debian email address"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:45
msgid "Alioth user name"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:96
#: ddportfolioservice/model/urlbuilder.py:100
#, python-format
msgid "Missing input: %s"
msgstr ""
#: ddportfolioservice/templates/base.mako:26
#: ddportfolioservice/templates/base.mako:34
msgid "Debian Member Portfolio Service"
msgstr ""
#: ddportfolioservice/templates/base.mako:32
msgid "Debian Logo"
msgstr ""
#: ddportfolioservice/templates/base.mako:35
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the Debian "
"Wiki</a>. You can create a set of customized links leading to a Debian "
"Member's or package maintainer's information regarding Debian."
msgstr ""
#: ddportfolioservice/templates/base.mako:46
msgid "AGPL - Free Software"
msgstr ""
#: ddportfolioservice/templates/base.mako:48
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"http://www.gnu.org/licenses/agpl.html\">GNU Affero General Public "
"License</a> as published by the Free Software Foundation, either version 3 of"
" the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the "
"source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git clone "
"URL\">%(cloneurl)s</a> using <a href=\"http://git-scm.com/\">git</a>."
msgstr ""
#: ddportfolioservice/templates/base.mako:49
msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
msgstr ""
#: ddportfolioservice/templates/showform.mako:24
msgid "Enter your personal information"
msgstr ""
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:28
msgid "Debian Member Portfolio"
msgstr ""
#: ddportfolioservice/templates/showform.mako:36
msgid "Email address:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:47
msgid "Show all form fields"
msgstr ""
#: ddportfolioservice/templates/showform.mako:54
msgid "Name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:64
msgid "GPG fingerprint:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:79
msgid "Debian user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:94
msgid "Non Debian email address:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:109
msgid "Alioth user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:125
msgid "Wiki user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:140
msgid "Forum user id:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:151
msgid "Output format:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:157
msgid "HTML"
msgstr ""
#: ddportfolioservice/templates/showform.mako:159
msgid "JSON"
msgstr ""
#: ddportfolioservice/templates/showform.mako:161
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:24
msgid "Your personal links"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:31
msgid "Usage"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:31
msgid "URL"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:41
msgid "Error during URL creation:"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:68
msgid "Restart"
msgstr ""

View file

@ -0,0 +1,407 @@
# German translations for ddportfolioservice.
# Copyright (C) 2009, 2010, 2011 Jan Dittberner
# This file is distributed under the same license as the ddportfolioservice
# project.
# Jan Dittberner <jan@dittberner.info>, 2009, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: ddportfolioservice 0.2.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2009-01-20 23:13+0100\n"
"PO-Revision-Date: 2012-01-07 16:37+0100\n"
"Last-Translator: Jan Dittberner <jan@dittberner.info>\n"
"Language-Team: de <de@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.5\n"
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Overview"
msgstr "Überblick"
#: ddportfolioservice/controllers/ddportfolio.py:42
msgid "Debian Member's Package Overview"
msgstr "Paketübersicht des Debian-Mitglieds"
#: ddportfolioservice/controllers/ddportfolio.py:43
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Paketübersicht des Debian-Mitglieds\n"
"... mit allen E-Mailadressen"
#: ddportfolioservice/controllers/ddportfolio.py:47
msgid "Bugs"
msgstr "Fehler"
#: ddportfolioservice/controllers/ddportfolio.py:48
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"http://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Erhaltene Fehlerberichte\n"
"(Anmerkung: Co-Maintainer werden nicht aufgeführt, siehe <a "
"href=\"http://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: ddportfolioservice/controllers/ddportfolio.py:52
msgid "bugs reported"
msgstr "Berichtete Fehler"
#: ddportfolioservice/controllers/ddportfolio.py:53
msgid "bugstats AKA <em>karma</em>"
msgstr "Fehlerstatistiken auch bekannt als <em>Karma</em>"
#: ddportfolioservice/controllers/ddportfolio.py:54
msgid "user tags"
msgstr "User Tags"
#: ddportfolioservice/controllers/ddportfolio.py:55
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"Alle Nachrichten (d.h. Volltextsuche nach dem Entwicklernamen in allen "
"Fehlerlogs)"
#: ddportfolioservice/controllers/ddportfolio.py:57
msgid "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
#: ddportfolioservice/controllers/ddportfolio.py:58
msgid "correspondent for bugs"
msgstr "Beitragender zu Fehlern"
#: ddportfolioservice/controllers/ddportfolio.py:59
msgid "one year open bug history graph"
msgstr "Graph der Entwicklung offener Fehlerberichte über ein Jahr"
#: ddportfolioservice/controllers/ddportfolio.py:62
msgid "Build"
msgstr "Build"
#: ddportfolioservice/controllers/ddportfolio.py:63
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:64
msgid "igloo"
msgstr "Igloo"
#: ddportfolioservice/controllers/ddportfolio.py:67
msgid "Quality Assurance"
msgstr "Qualitätssicherung"
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "lintian reports"
msgstr "Lintian-Berichte"
#: ddportfolioservice/controllers/ddportfolio.py:69
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"vollständige Lintian-Berichte (d.h. inklusive Meldungen der Stufe "
"\"info\")"
#: ddportfolioservice/controllers/ddportfolio.py:71
msgid "DEHS (Debian External Health Status)"
msgstr "DEHS (Debian External Health Status)"
#: ddportfolioservice/controllers/ddportfolio.py:72
msgid "piuparts"
msgstr "piuparts"
#: ddportfolioservice/controllers/ddportfolio.py:73
msgid "Debian patch tracking system"
msgstr "Debian Nachverfolgungssystem für Patches"
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "Upload"
msgstr "Upload"
#: ddportfolioservice/controllers/ddportfolio.py:77
msgid ""
"keylog (per-key upload list)\n"
"(note: uses key fingerprint)"
msgstr ""
"Keylog\n"
"(Anmerkung: verwendet den Fingerabdruck des Schlüssels)"
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "Mailing Lists"
msgstr "Mailinglisten"
#: ddportfolioservice/controllers/ddportfolio.py:82
msgid "lists.d.o"
msgstr "lists.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:83
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:84
msgid "gmane"
msgstr "Gmane"
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "Files"
msgstr "Dateien"
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "people.d.o"
msgstr "people.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:89
msgid "oldpeople"
msgstr "oldpeople"
#: ddportfolioservice/controllers/ddportfolio.py:90
#: ddportfolioservice/controllers/ddportfolio.py:97
msgid "Alioth"
msgstr "Alioth"
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "Membership"
msgstr "Mitgliedschaft"
#: ddportfolioservice/controllers/ddportfolio.py:94
msgid "NM"
msgstr "NM"
#: ddportfolioservice/controllers/ddportfolio.py:95
msgid "DB information via finger"
msgstr "DB-Informationen per finger"
#: ddportfolioservice/controllers/ddportfolio.py:96
msgid "DB information via HTTP"
msgstr "DB-Informationen per HTTP"
#: ddportfolioservice/controllers/ddportfolio.py:98
msgid "Wiki"
msgstr "Wiki"
#: ddportfolioservice/controllers/ddportfolio.py:99
msgid "Forum"
msgstr "Forum"
#: ddportfolioservice/controllers/ddportfolio.py:102
msgid "Miscellaneous"
msgstr "Sonstiges"
#: ddportfolioservice/controllers/ddportfolio.py:103
msgid "debtags"
msgstr "debtags"
#: ddportfolioservice/controllers/ddportfolio.py:104
msgid "links"
msgstr "Links"
#: ddportfolioservice/controllers/ddportfolio.py:105
msgid "Debian website"
msgstr "Debian Webseite"
#: ddportfolioservice/controllers/ddportfolio.py:106
msgid "Debian search"
msgstr "Debian-Suche"
#: ddportfolioservice/controllers/ddportfolio.py:107
msgid "GPG public key via finger"
msgstr "öffentlicher GPG-Schlüssel per finger"
#: ddportfolioservice/controllers/ddportfolio.py:108
msgid "GPG public key via HTTP"
msgstr "öffentlicher GPG-Schlüssel per HTTP"
#: ddportfolioservice/controllers/ddportfolio.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Per ssh erreichbare Informationen (für Debian Mitglieder)"
#: ddportfolioservice/controllers/ddportfolio.py:112
msgid "owned debian.net domains"
msgstr "Besitz von debian.net-Domains"
#: ddportfolioservice/controllers/ddportfolio.py:113
msgid ""
"<a href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database"
" information"
msgstr ""
"Informationen in der <a "
"href=\"http://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-Datenbank"
#: ddportfolioservice/controllers/ddportfolio.py:114
msgid "Group membership information"
msgstr "Information über Gruppenmitgliedschaften"
#: ddportfolioservice/controllers/ddportfolio.py:117
msgid "Ubuntu"
msgstr "Ubuntu"
#: ddportfolioservice/controllers/ddportfolio.py:118
msgid "Available patches from Ubuntu"
msgstr "Verfügbare Patches aus Ubuntu"
#: ddportfolioservice/model/urlbuilder.py:40
msgid "Email address"
msgstr "E-Mailadresse"
#: ddportfolioservice/model/urlbuilder.py:41
msgid "Name"
msgstr "Name"
#: ddportfolioservice/model/urlbuilder.py:42
msgid "GPG fingerprint"
msgstr "GPG-Fingerabdruck"
#: ddportfolioservice/model/urlbuilder.py:43
msgid "Debian user name"
msgstr "Debian-Benutzername"
#: ddportfolioservice/model/urlbuilder.py:44
msgid "Non Debian email address"
msgstr "Nicht-Debian-E-Mailadresse"
#: ddportfolioservice/model/urlbuilder.py:45
msgid "Alioth user name"
msgstr "Alioth-Benutzername"
#: ddportfolioservice/model/urlbuilder.py:96
#: ddportfolioservice/model/urlbuilder.py:100
#, python-format
msgid "Missing input: %s"
msgstr "Fehlende Eingabe: %s"
#: ddportfolioservice/templates/base.mako:26
#: ddportfolioservice/templates/base.mako:34
msgid "Debian Member Portfolio Service"
msgstr "Debian-Mitglieder-Portfolioservice"
#: ddportfolioservice/templates/base.mako:32
msgid "Debian Logo"
msgstr "Debian-Logo"
#: ddportfolioservice/templates/base.mako:35
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Dieser Dienst wurde durch Stefano Zacchirolis <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio-Seite im Debian "
"Wiki</a> inspiriert. Mit dem Dienst können personalisierte Links zu "
"Informationen im Bezug auf Debian für Debian-Mitglieder und Paketbetreuer"
" erzeugt werden."
#: ddportfolioservice/templates/base.mako:46
msgid "AGPL - Free Software"
msgstr "AGPL - Freie Software"
#: ddportfolioservice/templates/base.mako:48
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"http://www.gnu.org/licenses/agpl.html\">GNU Affero General Public "
"License</a> as published by the Free Software Foundation, either version "
"3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"http://git-"
"scm.com/\">git</a>."
msgstr ""
"Dieser Dienst wird unter den Bedingungen der <a "
"href=\"http://www.gnu.org/licenses/agpl.html\">GNU Affero General Public "
"License</a>, so wie sie von der Free Software Foundation veröffentlicht "
"ist, bereitgestellt. Sie können entweder Version 3 oder (auf Ihren Wunsch"
" hin) jede spätere Version der Lizenz verwenden. Sie können sich <a "
"href=\"%(browseurl)s\" title=\"Gitweb Repository-Browser-URL\">den "
"Quelltext ansehen</a> oder mit <a href=\"http://git-scm.com\">git</a> von"
" <a href=\"%(cloneurl)s\" title=\"Git Clone-URL\">%(cloneurl)s</a> "
"klonen."
#: ddportfolioservice/templates/base.mako:49
msgid "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
msgstr "Copyright © 2009, 2010, 2011, 2012 Jan Dittberner"
#: ddportfolioservice/templates/showform.mako:24
msgid "Enter your personal information"
msgstr "Eingabe der persönlichen Informationen"
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:28
msgid "Debian Member Portfolio"
msgstr "Debian-Mitgliedererportfolio"
#: ddportfolioservice/templates/showform.mako:36
msgid "Email address:"
msgstr "E-Mailadresse:"
#: ddportfolioservice/templates/showform.mako:47
msgid "Show all form fields"
msgstr "Alle Formularfelder anzeigen"
#: ddportfolioservice/templates/showform.mako:54
msgid "Name:"
msgstr "Name:"
#: ddportfolioservice/templates/showform.mako:64
msgid "GPG fingerprint:"
msgstr "GPG-Fingerabdruck:"
#: ddportfolioservice/templates/showform.mako:79
msgid "Debian user name:"
msgstr "Debian-Benutzername:"
#: ddportfolioservice/templates/showform.mako:94
msgid "Non Debian email address:"
msgstr "Nicht-Debian-E-Mailadresse"
#: ddportfolioservice/templates/showform.mako:109
msgid "Alioth user name:"
msgstr "Alioth-Benutzername:"
#: ddportfolioservice/templates/showform.mako:125
msgid "Wiki user name:"
msgstr "Wiki-Benutzername:"
#: ddportfolioservice/templates/showform.mako:140
msgid "Forum user id:"
msgstr "Forumsbenutzernummer:"
#: ddportfolioservice/templates/showform.mako:151
msgid "Output format:"
msgstr "Ausgabeformat:"
#: ddportfolioservice/templates/showform.mako:157
msgid "HTML"
msgstr "HTML"
#: ddportfolioservice/templates/showform.mako:159
msgid "JSON"
msgstr "JSON"
#: ddportfolioservice/templates/showform.mako:161
msgid "Build Debian Member Portfolio URLs"
msgstr "Debian-Mitgliedsportfolio-URLs bauen"
#: ddportfolioservice/templates/showurls.mako:24
msgid "Your personal links"
msgstr "Ihre personalisierten Links"
#: ddportfolioservice/templates/showurls.mako:31
msgid "Usage"
msgstr "Verwendung"
#: ddportfolioservice/templates/showurls.mako:31
msgid "URL"
msgstr "URL"
#: ddportfolioservice/templates/showurls.mako:41
msgid "Error during URL creation:"
msgstr "Fehler bei der URL-Erzeugung:"
#: ddportfolioservice/templates/showurls.mako:68
msgid "Restart"
msgstr "Neu beginnen"

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service lib package
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,41 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service application Globals
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""The application's Globals object"""
from beaker.cache import CacheManager
from beaker.util import parse_cache_config_options
class Globals(object):
"""
Globals acts as a container for objects available throughout the
life of the application
"""
def __init__(self, config):
"""
One instance of Globals is created during application
initialization and is available during requests via the
'app_globals' variable
"""
self.cache = CacheManager(**parse_cache_config_options(config))

View file

@ -0,0 +1,47 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service base controller
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""The base Controller API
Provides the BaseController class for subclassing.
"""
from pylons import tmpl_context as c, request
from pylons.controllers import WSGIController
from pylons.i18n import add_fallback
from pylons.templating import render_mako as render
class BaseController(WSGIController):
def __call__(self, environ, start_response):
"""Invoke the Controller"""
# WSGIController.__call__ dispatches to the Controller method
# the request is routed to. This routing information is
# available in environ['pylons.routes_dict']
# set language environment
for lang in request.languages:
try:
add_fallback(lang)
except:
pass
c.messages = {'errors': [], 'messages': []}
return WSGIController.__call__(self, environ, start_response)

View file

@ -0,0 +1,33 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service webhelpers
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Helper functions
Consists of functions to typically be used within templates, but also
available to Controllers. This module is available to templates as 'h'.
"""
from webhelpers.html.builder import escape, literal
from webhelpers.html.tags import stylesheet_link, javascript_link, image, \
form, text, radio, submit, end_form, link_to, checkbox
from webhelpers.text import truncate
from webhelpers.textile import textile
from pylons import url

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service model package
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,54 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DD data builder
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 file contains code to build a representation of a person based
on keyring data associated to a given email address."""
import logging
from ddportfolioservice.model import keyfinder
TYPE_NO = 0
TYPE_DM = 1
TYPE_DD = 2
log = logging.getLogger(__name__)
def build_data(email_address):
"""Build a DD data structure from a given email address."""
fields = dict([(field, func(str(email_address))) \
for (field, func) in \
[('gpgfp', keyfinder.getFingerprintByEmail),
('name', keyfinder.getRealnameByEmail),
('username', keyfinder.getLoginByEmail)]])
fields['email'] = email_address
if fields['username'] and fields['gpgfp'] and fields['name']:
fields['type'] = TYPE_DD
elif fields['name'] and fields['gpgfp']:
fields['type'] = TYPE_DM
else:
fields['type'] = TYPE_NO
if fields['name']:
log.debug('generate wikihomepage from name')
fields['wikihomepage'] = "".join(
[part.capitalize() for part in fields['name'].split()])
return fields

View file

@ -0,0 +1,120 @@
#
# Configuration for DDPortfolio service
# Copyright © 2009, 2010, 2011 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
[DEFAULT]
keyring.dir=~/debian/keyring.debian.org/keyrings
urlbuilder.sections=overview,bugs,build,qa,upload,lists,files,membership,
miscellaneous,ssh,ubuntu
[overview]
urls=ddpo,alladdresses
ddpo.pattern=http://qa.debian.org/developer.php?login=%(email)s
alladdresses.pattern=http://qa.debian.org/developer.php?login=%(name)s
[bugs]
urls=received,reported,bugstats,usertags,searchall,wnpp,correspondent,graph
received.pattern=http://bugs.debian.org/%(email)s
reported.pattern=http://bugs.debian.org/from:%(email)s
bugstats.pattern=http://asdfasdf.debian.net/~tar/bugstats/?%(email)s
usertags.pattern=http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=%(email)s
searchall.pattern=http://merkel.debian.org/~don/cgi/search.cgi?phrase=%(name)s;search=search
wnpp.pattern=http://qa.debian.org/developer.php?wnpp=%(email)s
correspondent.pattern=http://bugs.debian.org/cgi-bin/pkgreport.cgi?correspondent=%(email)s
graph.pattern=http://qa.debian.org/data/bts/graphs/by-maint/%(email)s.png
[build]
urls=buildd
buildd.pattern=https://buildd.debian.org/status/package.php?p=%(email)s&compact=compact&comaint=yes
[qa]
urls=lintian,lintianfull,dehs,piuparts,patchtracker
lintian.pattern=http://lintian.debian.org/maintainer/%(email)s.html
lintianfull.pattern=http://lintian.debian.org/full/%(email)s.html
dehs.pattern=http://dehs.alioth.debian.org/report.php?login=%(email)s
piuparts.pattern=http://piuparts.debian.org/sid/maintainer/%(firstchar)s/%(email)s.html
patchtracker.pattern=http://patch-tracker.debian.org/email/%(email)s
[upload]
urls=keylog
keylog.pattern=http://merkel.debian.org/~enrico/keylog/%(gpgfp)s.html
keylog.optional=true
[lists]
urls=dolists,adolists,gmane
dolists.pattern=http://lists.debian.org/cgi-bin/search?author=%(name)s&amp;sort=date
adolists.pattern=http://www.google.com/search?q=site%%3Alists.alioth.debian.org+%%22%(name)s%%22
gmane.pattern=http://search.gmane.org/?email=%(name)s&amp;group=gmane.linux.debian.*
# debconf list search has a tricky URL format
# http://lists.debconf.org/lurker/search \
# /20100510.202949.00000000@au:%(firstname)s,au:%(lastname)s.en.html
# /YYYYMMDD.HHmmss.hashcode@au:%(firstname)s,au:%(lastname)s.en.html
# maybe this could be implemented using some custom formatter function
[files]
urls=people,alioth
people.pattern=http://people.debian.org/~%(username)s/
people.optional=true
alioth.pattern=http://alioth.debian.org/~%(aliothusername)s/
alioth.optional=true
[membership]
urls=nm,dbfinger,db,alioth,wiki,forum
nm.pattern=https://nm.debian.org/public/nmstatus/%(nonddemail)s
dbfinger.pattern=finger %(username)s@db.debian.org
dbfinger.type=finger
dbfinger.optional=true
db.pattern=http://db.debian.org/search.cgi?uid=%(username)s&amp;dosearch=Search
db.optional=true
alioth.pattern=http://alioth.debian.org/users/%(aliothusername)s/
alioth.optional=true
wiki.pattern=http://wiki.debian.org/%(wikihomepage)s
forum.pattern=http://forums.debian.net/memberlist.php?mode=viewprofile&u=%(forumsid)d
forum.optional=true
[miscellaneous]
urls=debtags,links,website,search,gpgfinger,gpgweb
debtags.pattern=http://debtags.debian.net/reports/maint/%(email)s
links.pattern=http://www.google.com/search?hl=en&lr=&q=site%%3Adebian.org+%%22%(name)s%%22+-site%%3Anm.debian.org+-site%%3Alintian.debian.org+-site%%3Abugs.debian.org+-site%%3Alists.debian.org+-site%%3Apackages.debian.org+-site%%3Alists.alioth.debian.org+-site%%3Aftp.debian.org++-site%%3Apackages.qa.debian.org++-site%%3Aftp*.*.debian.org+-inurl%%3Adebian.org%%2Fdevel%%2Fpeople.+-inurl%%3Aindices%%2FMaintainers+-inurl%%3Adebian.org%%2Fdebian%%2Fproject++-inurl%%3A%%2Fdists%%2F&btnG=Search
website.pattern=http://www.google.com/search?q=site:www.debian.org+%(name)s
search.pattern=http://search.debian.org/?q=%%22%(name)s%%22
gpgfinger.pattern=finger %(username)s/key@db.debian.org
gpgfinger.type=finger
gpgfinger.optional=true
gpgweb.pattern=http://db.debian.org/fetchkey.cgi?fingerprint=%(gpgfp)s
gpgweb.optional=true
[ssh]
# SSH functions
urls=owndndoms,miainfo,groupinfo
# owned *.debian.net domains
owndndoms.pattern=ssh master.debian.org ldapsearch -u -x -H ldap://db.debian.org -b dc=debian,dc=org uid=%(username)s dnsZoneEntry
owndndoms.type=ssh
owndndoms.optional=true
# MIA information
miainfo.pattern=ssh qa.debian.org /srv/qa.debian.org/mia/mia-query %(emailnoq)s
miainfo.type=ssh
# Group information
groupinfo.pattern=ssh master.debian.org id %(username)s
groupinfo.type=ssh
groupinfo.optional=true
[ubuntu]
urls=ubuntudiff
ubuntudiff.pattern=http://ubuntudiff.debian.net/q/uploaders/%(email)s

View file

@ -0,0 +1,47 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service form handling model
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 formencode
class DeveloperData(formencode.Schema):
"""Validation schema for DeveloperData."""
allow_extra_fields = True
filter_extra_fields = True
email = formencode.validators.Email(not_empty=True)
name = formencode.validators.String(not_empty=True)
gpgfp = formencode.All(formencode.validators.PlainText(),
formencode.validators.MinLength(32),
formencode.validators.MaxLength(40))
username = formencode.validators.PlainText()
nonddemail = formencode.validators.Email()
aliothusername = formencode.validators.PlainText()
mode = formencode.validators.OneOf([u'json', u'html'], if_missing=u'html')
forumsid = formencode.validators.Int(if_missing=None)
wikihomepage = formencode.validators.String(if_missing=None)
class DDDataRequest(formencode.Schema):
"""Validation schema for DDData request."""
allow_extra_fields = True
filter_extra_fields = False
email = formencode.validators.Email(not_empty=True)

View file

@ -0,0 +1,86 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service key finder module
# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 provides tools for finding PGP key information from a
given keyring.
"""
import logging
import time
db = None
cachetimestamp = 0
def _get_keyring_cache():
global db, cachetimestamp
if db is None or (time.time() - cachetimestamp) > 86300:
import anydbm
import pkg_resources
import os.path
filename = pkg_resources.resource_filename(__name__,
'keyringcache')
logging.debug('reading cache data from %s', filename)
assert os.path.exists(filename) and os.path.isfile(filename)
db = anydbm.open(filename, 'r')
cachetimestamp = time.time()
return db
def _get_cached(cachekey):
cache = _get_keyring_cache()
logging.debug('cache lookup for %s', cachekey)
if cachekey in cache:
logging.debug('found entry %s', cache[cachekey])
return cache[cachekey]
return None
def getFingerprintByEmail(email):
"""
Gets the fingerprints associated with the given email address if
available.
"""
return _get_cached('fpr:email:%s' % email)
def getRealnameByEmail(email):
"""
Gets the real names associated with the given email address if
available.
"""
return _get_cached('name:email:%s' % email)
def getLoginByEmail(email):
"""
Gets the logins associated with the given email address if
available.
"""
return _get_cached('login:email:%s' % email)
def getLoginByFingerprint(fpr):
"""
Gets the login associated with the given fingerprint if available.
"""
return _get_cached('login:fpr:%s' % fpr)

View file

@ -0,0 +1,146 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service application key ring analyzer tool
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 is a tool that analyzes GPG and PGP keyrings and stores the
retrieved data in a file database. The tool was inspired by Debian
qa's carnivore.
"""
import anydbm
import pkg_resources
import glob
import ConfigParser
import os
import os.path
import logging
import subprocess
import sys
def _get_keyrings():
"""
Gets the available keyring files from the keyring directory
configured in ddportfolio.ini.
"""
my_config = ConfigParser.ConfigParser()
my_config.readfp(pkg_resources.resource_stream(
__name__, 'ddportfolio.ini'))
keyringdir = os.path.expanduser(my_config.get('DEFAULT', 'keyring.dir'))
logging.debug("keyring dir is %s", keyringdir)
keyrings = glob.glob(os.path.join(keyringdir, '*.gpg'))
keyrings.extend(glob.glob(os.path.join(keyringdir, '*.pgp')))
keyrings.sort()
return keyrings
def _parse_uid(uid):
"""
Parse a uid of the form 'Real Name <email@example.com>' into email
and realname parts.
"""
uid = uid.strip()
# First, strip comment
s = uid.find('(')
e = uid.find(')')
if s >= 0 and e >= 0:
uid = uid[:s] + uid[e + 1:]
s = uid.find('<')
e = uid.find('>')
email = None
if s >= 0 and e >= 0:
email = uid[s + 1:e]
uid = uid[:s] + uid[e + 1:]
uid = uid.strip()
if not email and uid.find('@') >= 0:
email, uid = uid, email
return (uid, email)
resultdict = {}
def _get_canonical(key):
if not key in resultdict:
resultdict[key] = []
return key
def _add_to_result(key, newvalue):
thekey = _get_canonical(key)
if newvalue not in resultdict[thekey]:
resultdict[thekey].append(newvalue)
def process_keyrings():
"""Process the keyrings and store the extracted data in an anydbm
file."""
for keyring in _get_keyrings():
logging.debug("get data from %s", keyring)
proc = subprocess.Popen(["gpg", "--no-default-keyring",
"--no-expensive-trust-checks",
"--keyring", keyring, "--list-keys",
"--with-colons", "--fingerprint"],
stdout=subprocess.PIPE)
fpr = None
entry = None
lastpub = None
for line in proc.stdout.readlines():
items = line.split(':')
uid = None
if items[0] == 'pub':
fpr = entry = None
lastpub = items[9].strip()
continue
elif items[0] == 'fpr':
fpr = items[9].strip()
uid = lastpub
elif items[0] == 'uid':
uid = items[9].strip()
else:
continue
# Do stuff with 'uid'
uid, email = _parse_uid(uid)
if email:
if email.endswith('@debian.org'):
login = email[0:-len('@debian.org')]
_add_to_result('login:email:%s' % email, login)
_add_to_result('login:fpr:%s' % fpr, login)
_add_to_result('fpr:login:%s' % login, fpr)
_add_to_result('fpr:email:%s' % email, fpr)
_add_to_result('email:fpr:%s' % fpr, email)
if uid:
_add_to_result('name:fpr:%s' % fpr, uid)
if email:
_add_to_result('name:email:%s' % email, uid)
retcode = proc.wait()
if retcode != 0:
logging.error("subprocess ended with return code %d", retcode)
db = anydbm.open(pkg_resources.resource_filename(__name__,
'keyringcache'), 'c')
for key in resultdict:
db[key] = ":".join(resultdict[key])
db.close()
if __name__ == '__main__':
logging.basicConfig(stream=sys.stderr, level=logging.WARNING)
process_keyrings()

View file

@ -0,0 +1,102 @@
# -*- python -*-
# -*- coding: utf8 -*-
#
# DDPortfolio service url builder
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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 provides the function build_urls to build personalized
URLs using the given information and the URL patterns defined in
ddportfolio.ini.
"""
from ConfigParser import ConfigParser, InterpolationMissingOptionError
import pkg_resources
from ddportfolioservice.model import keyfinder
from urllib import quote_plus
from pylons.i18n.translation import _, N_
my_config = ConfigParser()
my_config.readfp(pkg_resources.resource_stream(__name__, 'ddportfolio.ini'))
_FIELDNAMES_MAP = {
'email': N_('Email address'),
'name': N_('Name'),
'gpgfp': N_('GPG fingerprint'),
'username': N_('Debian user name'),
'nonddemail': N_('Non Debian email address'),
'aliothusername': N_('Alioth user name'),
}
class DDPortfolioEntry(object):
def __init__(self, config, section, key):
self.name = key
self.optional = config.has_option(section, key + '.optional') and \
config.getboolean(section, key + '.optional') or False
if config.has_option(section, key + '.type'):
self.type = config.get(section, key + '.type')
else:
self.type = 'url'
def build_urls(fields):
"""Build personalized URLs using the developer information in
fields."""
data = []
qfields = {}
for key, value in fields.iteritems():
if value is not None:
if isinstance(value, unicode):
qfields[key] = quote_plus(value.encode('utf8'))
elif isinstance(value, str):
qfields[key] = quote_plus(value)
else:
qfields[key] = value
if 'gpgfp' not in qfields:
fpr = keyfinder.getFingerprintByEmail(fields['email'].encode('utf8'))
if fpr:
qfields['gpgfp'] = fpr[0]
qfields['firstchar'] = fields['email'][0].encode('utf8')
qfields['emailnoq'] = fields['email'].encode('utf8')
for section in [section.strip() for section in \
my_config.get('DEFAULT',
'urlbuilder.sections').split(',')]:
data.append(['section', section])
if my_config.has_option(section, 'urls'):
for entry in ([
DDPortfolioEntry(my_config, section, url) for url in \
my_config.get(section, 'urls').split(',')]):
try:
data.append(
['url', section, entry,
my_config.get(section, entry.name + '.pattern',
False, qfields)])
except InterpolationMissingOptionError, e:
if not entry.optional:
if e.reference in _FIELDNAMES_MAP:
data.append(['error', section, entry,
_('Missing input: %s') % \
_(_FIELDNAMES_MAP[e.reference])])
else:
data.append(['error', section, entry,
_('Missing input: %s') % e.reference])
return data

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View file

@ -0,0 +1,53 @@
## -*- coding: utf-8 -*- \
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%doc>
Base template for XHTML templates.
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
This file is part of DDPortfolio service.
DDPortfolio service 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.
DDPortfolio service 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/>.
</%doc>
<html>
<head>
<title>${_('Debian Member Portfolio Service')}${self.titleaddon()}</title>
${h.stylesheet_link(h.url('/stylesheets/style.css'))}
${self.extrahead()}
</head>
<body>
<div id="header">
${h.image(h.url('/images/openlogo-100.jpg'), _('Debian Logo'), 100, 100,
id='debianlogo')}
<h1>${_('Debian Member Portfolio Service')}</h1>
<p>${h.literal(_('''This service has been inspired by Stefano Zacchiroli's <a href="http://wiki.debian.org/DDPortfolio">DDPortfolio page in the Debian Wiki</a>. You can create a set of customized links leading to a Debian Member's or package maintainer's information regarding Debian.'''))}</p>
<p><script type="text/javascript">
var flattr_url = 'http://portfolio.debian.net/';
var flattr_btn='compact';
</script>
<script src="http://api.flattr.com/button/load.js" type="text/javascript"></script></p>
</div>
<div id="content">
${self.body()}
</div>
<div id="footer">
${h.image(h.url('/images/agplv3-88x31.png'), _('AGPL - Free Software'), 88, 31,
id='agpllogo')}
<p>${h.literal(_('''The service is available under the terms of the <a href="http://www.gnu.org/licenses/agpl.html">GNU Affero General Public License</a> as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. You can <a href="%(browseurl)s" title="Gitweb repository browser URL">browse the source code</a> or clone it from <a href="%(cloneurl)s" title="git clone URL">%(cloneurl)s</a> using <a href="http://git-scm.com/">git</a>.''') % dict((('browseurl', 'http://debianstuff.dittberner.info/gitweb.cgi?p=ddportfolioservice.git;a=summary'), ('cloneurl', 'http://debianstuff.dittberner.info/git/ddportfolioservice.git'))))}</p>
<p>${_(u'''Copyright © 2009, 2010, 2011, 2012 Jan Dittberner''')}</p>
</div>
</body>
</html>
<%def name="extrahead()"></%def>

View file

@ -0,0 +1,164 @@
## -- coding: utf-8 -- \
<%inherit file="base.mako" />
<%doc>
Template for the data input form.
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
This file is part of DDPortfolio service.
DDPortfolio service 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.
DDPortfolio service 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/>.
</%doc>
<%def name="titleaddon()">
- ${_('Enter your personal information')}
</%def>
<%def name="extrahead()">${h.javascript_link('/javascript/jquery/jquery.js',
h.url(controller='showformscripts', action='index'))}</%def>
${h.form(h.url(action='urllist', controller='ddportfolio'), method='get')}
<fieldset id="ddportfolio">
<legend>${_('Debian Member Portfolio')}</legend>
<div id="emailfield" \
% if 'email' in c.messages['errors']:
class="witherrors" \
% endif
>
<label for="email">${_('Email address:')}
% if 'email' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['email'] | h}</span>
% endif
</label><br />
${h.text('email',
h.escape(request.params.get('email', None), True), id='email')}<br />
</div>
<div id="showallfield" class="hidden">
${h.checkbox('showall', value='1', checked=False, id='showall')}
<label for="showall">${_(u'Show all form fields')}</label><br />
</div>
<div id="namefield" \
% if 'name' in c.messages['errors']:
class="witherrors" \
% endif
>
<label for="name">${_('Name:')}
% if 'name' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['name'] | h}</span>
% endif
</label><br />
${h.text('name',
h.escape(request.params.get('name', None)), id='name')}<br />
</div>
<div id="gpgfpfield">
<label for="gpgfp">${_('GPG fingerprint:')}
% if 'gpgfp' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['gpgfp'] | h}</span>
% endif
</label><br />
${h.text('gpgfp',
h.escape(request.params.get('gpgfp', None)),
id='gpgfp')}<br />
</div>
<div id="usernamefield" \
% if 'username' in c.messages['errors']:
class="witherrors" \
% endif
>
<label for="username">${_('Debian user name:')}
% if 'username' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['username'] | h}</span>
% endif
</label><br />
${h.text('username',
h.escape(request.params.get('username', None)),
id='username')}<br />
</div>
<div id="nonddemailfield" \
% if 'nonddemail' in c.messages['errors']:
class="witherrors" \
% endif
>
<label for="nonddemail">${_('Non Debian email address:') | h}
% if 'nonddemail' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['nonddemail'] | h}</span>
% endif
</label><br />
${h.text('nonddemail',
h.escape(request.params.get('nonddemail', None)),
id='nonddemail')}<br />
</div>
<div id="aliothusernamefield" \
% if 'aliothusername' in c.messages['errors']:
class="witherrors"
% endif
>
<label for="aliothusername">${_('Alioth user name:')}
% if 'aliothusername' in c.messages['errors']:
<br />
<span
class="errormsg">${c.messages['errors']['aliothusername'] | h}</span>
% endif
</label><br />
${h.text('aliothusername',
h.escape(request.params.get('username', None)),
id='aliothusername')}<br />
</div>
<div id="wikihomepagefield" \
% if 'wikihomepage' in c.messages['errors']:
class="witherrors"
% endif
>
<label for="wikihomepage">${_('Wiki user name:')}
% if 'wikihomepage' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['wikihomepage'] | h}</span>
% endif
</label><br />
${h.text('wikihomepage',
h.escape(request.params.get('wikihomepage', None)),
id='wikihomepage')}<br />
</div>
<div id="forumsidfield" \
% if 'forumsid' in c.messages['errors']:
class="witherrors"
% endif
>
<label for="forumsid">${_('Forum user id:')}
% if 'forumsid' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['forumsid'] | h}</span>
% endif
</label><br />
${h.text('forumsid',
h.escape(request.params.get('forumsid', None)),
id='forumsid')}<br />
</div>
<div id="modefield">
<label for="mode_html">${_('Output format:')}
% if 'mode' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['mode'] | h}</span>
% endif
</label><br />
${_('HTML')}&#160;${h.radio('mode', 'html',
checked=(request.params.get('mode',
'html') == 'html'))}&#160;${_('JSON')}&#160;${h.radio('mode',
'json', checked=(request.params.get('mode', 'html') == 'json'))}<br />
${h.submit('submit', value=_('Build Debian Member Portfolio URLs'))}
</div>
</fieldset>
${h.end_form()}

View file

@ -0,0 +1,122 @@
## -*- coding: utf-8 -*- \
<%doc>
Helper JavaScript for the data input form.
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
This file is part of DDPortfolio service.
DDPortfolio service 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.
DDPortfolio service 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/>.
</%doc>\
var defaulthiddendivs = new Array(
'#namefield', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#aliothusernamefield', '#wikihomepagefield', '#forumsidfield');
var maskedfielddivs = new Array(
'#namefield', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#aliothusernamefield', '#wikihomepagefield', '#forumsidfield');
var allfielddivs = new Array(
'#namefield', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#aliothusernamefield', '#wikihomepagefield', '#forumsidfield');
function updateFields(data, textStatus) {
if (data.type == 2) { // DD
$('#name').attr('value', data.name).attr('readonly', 'readonly');
$('#gpgfp').attr('value', data.gpgfp);
$('#username').attr('value', data.username).attr(
'readonly', 'readonly');
$('#nonddemail').attr('value', data.email).focus();
$('#aliothusername').attr('value', data.username);
$('#wikihomepage').attr('value', data.wikihomepage);
$('#namefield').show();
$('#gpgfpfield').show();
$('#usernamefield').show();
$('#nonddemailfield').show();
$('#aliothusernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#nonddemail').focus().select();
} else if (data.type == 1) { // DM
$('#name').attr('value', data.name).attr('readonly', 'readonly');
$('#gpgfp').attr('value', data.gpgfp);
$('#username').attr('value', '');
$('#nonddemail').attr('value', data.email).focus();
$('#wikihomepage').attr('value', data.wikihomepage);
$('#namefield').show();
$('#gpgfpfield').show();
$('#usernamefield').hide();
$('#nonddemailfield').hide();
$('#aliothusernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#aliothusername').focus().select();
} else {
$('#nonddemail').attr('value', data.email);
$('#name').removeAttr('readonly');
$('#username').removeAttr('readonly').attr('value', '');
$('#gpgfp').attr('value', '');
$('#usernamefield').hide();
$('#gpgfpfield').hide();
$('#nonddemailfield').hide();
$('#namefield').show();
$('#aliothusernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#name').focus().select();
}
}
function onChangeShowAll(event) {
if ($('#showall').attr('checked')) {
for (var fielddiv in allfielddivs) {
$(allfielddivs[fielddiv]).show();
}
} else {
for (var fielddiv in maskedfielddivs) {
$(maskedfielddivs[fielddiv]).hide();
}
}
}
function onBlurEmail() {
if ($.trim($('#email').attr('value')).length > 0) {
$.ajax({
'url' : '${h.url(controller="showformscripts", action="fetchdddata")}',
'data' : {'email' : $('#email').attr('value')},
'dataType' : 'json',
'success' : updateFields,
'error' : function(request, textStatus, errorThrown) {
$('#email').focus();
}
});
}
}
$(document).ready(function() {
for (var index in defaulthiddendivs) {
if (!$(defaulthiddendivs[index]).hasClass('witherrors')) {
$(defaulthiddendivs[index]).hide();
}
}
$('#showall').attr('checked', false).change(onChangeShowAll);
$('#showallfield').show();
$('#email').blur(onBlurEmail).focus();
});

View file

@ -0,0 +1,68 @@
## -*- coding: utf-8 -*-
<%inherit file="base.mako" />\
<%doc>
Template for the url output page.
Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
This file is part of DDPortfolio service.
DDPortfolio service 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.
DDPortfolio service 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/>.
</%doc>\
<%def name="titleaddon()">
- ${_('Your personal links')}
</%def>
% if c.urldata:
<fieldset id="ddportfolio">
<legend>${_('Debian Member Portfolio')}</legend>
<table id="urltable">
<thead>
<tr><th>${_('Usage')}</th><th>${_('URL')}</th></tr>
</thead>
<tbody>
% for row in c.urldata:
% if row[0] == 'section':
<tr class="section"><th class="sectionlabel" colspan="2">${row[2]}</th></tr>
<% urlclass = 'odd' %>
% elif row[0] == 'error':
<tr class="error">
<td>${h.literal(h.textile(row[4]))}</td>
<td>${_('Error during URL creation:')}
<span class="errormsg">${row[3].replace("\n",
'<br />')}</span></td>
</tr>
% else:
<tr class="url ${urlclass}">
<td>${h.literal(h.textile(row[4]))}</td>
<td>
% if row[2].type == 'url':
${h.link_to(h.truncate(row[3], length=120), row[3])}
% else:
<tt>${row[3]}</tt>
% endif
</td>
</tr>
<%
if urlclass == 'odd':
urlclass = 'even'
else:
urlclass = 'odd'
%>
% endif
% endfor
</tbody>
</table>
</fieldset>
% endif
<p>${h.link_to(_('Restart'), h.url(controller='ddportfolio', action='index'))}</p>

View file

@ -0,0 +1,60 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service tests package
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Pylons application test package
When the test runner finds and executes tests within this directory,
this file will be loaded to setup the test environment.
It registers the root directory of the project in sys.path and
pkg_resources, in case the project hasn't been installed with
setuptools. It also initializes the application via websetup (paster
setup-app) with the project's test.ini configuration file.
"""
import os
import sys
from unittest import TestCase
from paste.deploy import loadapp
from paste.script.appinstall import SetupCommand
from pylons import url
from routes.util import URLGenerator
from webtest import TestApp
import pylons.test
__all__ = ['environ', 'url', 'TestController']
# Invoke websetup with the current config file
SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']])
environ = {}
class TestController(TestCase):
def __init__(self, *args, **kwargs):
wsgiapp = pylons.test.pylonsapp
config = wsgiapp.config
self.app = TestApp(wsgiapp)
url._push_object(URLGenerator(config['routes.map'], environ))
TestCase.__init__(self, *args, **kwargs)

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service functional tests package
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,30 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# Copyright © 2009, 2010 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
#
from ddportfolioservice.tests import TestController, url
class TestDdportfolioController(TestController):
def test_index(self):
response = self.app.get(url(controller='ddportfolio', action='index'))
# Test response...

View file

@ -0,0 +1,31 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# Copyright © 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
#
from ddportfolioservice.tests import TestController, url
class TestShowformscriptsController(TestController):
def test_index(self):
response = self.app.get(
url(controller='showformscripts', action='index'))
# Test response...

View file

@ -0,0 +1,22 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service model tests
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#

View file

@ -0,0 +1,40 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service websetup
# Copyright (c) 2009, 2010, 2011, 2012 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
#
# DDPortfolio service 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.
#
# DDPortfolio service 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/>.
#
"""Setup the ddportfolioservice application"""
import logging
from paste.deploy import appconfig
from pylons import config
import pylons.test
from ddportfolioservice.config.environment import load_environment
log = logging.getLogger(__name__)
def setup_config(command, filename, section, vars):
"""Place any commands to setup ddportfolioservice here"""
conf = appconfig('config:' + filename)
if not pylons.test.pylonsapp:
load_environment(conf.global_conf, conf.local_conf)

View file

@ -1,31 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service package
#
# Copyright © 2009-2015 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
from flask import Flask
from flask_babel import Babel
app = Flask(__name__)
babel = Babel(app)
app.config.from_object('config')
from debianmemberportfolio import views

View file

@ -1,73 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service views
#
# Copyright © 2015-2022 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
from __future__ import unicode_literals
from flask_babel import gettext as _
from flask_wtf import FlaskForm
from wtforms import IntegerField, StringField, RadioField
from wtforms.validators import (
AnyOf, DataRequired, Email, Length, Optional, Regexp
)
from string import hexdigits
class FingerPrint(Regexp):
def __init__(self, **kwargs):
super(FingerPrint, self).__init__(r'^[a-fA-F0-9]*$', **kwargs)
class PlainText(Regexp):
def __init__(self):
super(PlainText, self).__init__(r'^[a-zA-Z\-0-9]*$')
def gpg_fingerprint(data):
if data is not None:
return "".join([
char for char in str(data) if char.lower() in hexdigits])
return data
class DeveloperData(FlaskForm):
email = StringField('email', validators=[DataRequired(), Email()])
name = StringField('name', validators=[Optional(), DataRequired()])
openpgpfp = StringField('openpgpfp', filters=[gpg_fingerprint], validators=[
Optional(), FingerPrint(), Length(min=32, max=40)
])
username = StringField('username', validators=[Optional(), PlainText()])
nonddemail = StringField('nonddemail', validators=[Optional(), Email()])
salsausername = StringField('salsausername', validators=[
Optional(), PlainText()
])
mode = RadioField(
'mode', default='html', choices=[
('json', _('JSON')), ('html', _('HTML'))
], validators=[AnyOf(['json', 'html'])]
)
forumsid = IntegerField('forumsid', default=None, validators=[Optional()])
wikihomepage = StringField('wikihomepage', default=None, validators=[
Optional()])
class DeveloperDataRequest(FlaskForm):
email = StringField('email', validators=[DataRequired(), Email()])

View file

@ -1,26 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service model package
#
# Copyright © 2009-2014 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
"""
Model classes and model related utilities for the Debian Member Portfolio
service.
"""

View file

@ -1,57 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service data builder
#
# Copyright © 2009-2022 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
"""
This file contains code to build a representation of a person based on keyring
data associated to a given email address.
"""
import logging
from debianmemberportfolio.model import keyfinder
TYPE_NO = 0
TYPE_DM = 1
TYPE_DD = 2
log = logging.getLogger(__name__)
def build_data(email_address):
"""Build a DD data structure from a given email address."""
fields = dict([(field, func(str(email_address)))
for (field, func) in
[('openpgpfp', keyfinder.getFingerprintByEmail),
('name', keyfinder.getRealnameByEmail),
('username', keyfinder.getLoginByEmail)]])
fields['email'] = email_address
if fields['username'] and fields['openpgpfp'] and fields['name']:
fields['type'] = TYPE_DD
elif fields['name'] and fields['openpgpfp']:
fields['type'] = TYPE_DM
else:
fields['type'] = TYPE_NO
if fields['name']:
log.debug('generate wikihomepage from name')
fields['wikihomepage'] = "".join(
[part.capitalize() for part in fields['name'].split()])
return fields

View file

@ -1,111 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service key finder module
#
# Copyright © 2009-2023 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
"""
This module provides tools for finding OpenPGP key information from a
given keyring.
"""
import logging
import sys
import time
from importlib import resources
db = None
cache_timestamp = 0
def _get_keyring_cache():
global db, cache_timestamp
if db is None or (time.time() - cache_timestamp) > 86300:
import dbm
import os.path
dbm_filename = str(resources.files(__package__).joinpath("keyringcache.db"))
logging.debug("reading cache data from %s", dbm_filename)
assert os.path.exists(dbm_filename) and os.path.isfile(dbm_filename)
db = dbm.open(dbm_filename[: -len(".db")], "r")
cache_timestamp = time.time()
return db
def _get_cached(cachekey):
cache = _get_keyring_cache()
logging.debug("cache lookup for %s", cachekey)
if cachekey in cache:
logging.debug("found entry %s", cache[cachekey])
return cache[cachekey].decode("utf8")
return None
def getFingerprintByEmail(email):
"""
Gets the fingerprints associated with the given email address if
available.
"""
return _get_cached("fpr:email:%s" % email)
def getRealnameByEmail(email):
"""
Gets the real names associated with the given email address if
available.
"""
return _get_cached("name:email:%s" % email)
def getLoginByEmail(email):
"""
Gets the logins associated with the given email address if
available.
"""
return _get_cached("login:email:%s" % email)
def getLoginByFingerprint(fpr):
"""
Gets the login associated with the given fingerprint if available.
"""
return _get_cached("login:fpr:%s" % fpr)
def _dump_cache():
cache = _get_keyring_cache()
fprs = []
for key in [key.decode("utf8") for key in list(cache.keys())]:
if key.startswith("email:fpr:"):
fpr = key.replace("email:fpr:", "")
if not fpr in fprs:
fprs.append(fpr)
for fpr in fprs:
login = getLoginByFingerprint(fpr)
email = _get_cached("email:fpr:%s" % fpr)
name = _get_cached("name:fpr:%s" % fpr)
print(fpr, login, ":")
print(" ", name, email)
if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.WARNING)
_dump_cache()

View file

@ -1,199 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service application key ring analyzer tool
#
# Copyright © 2009-2023 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
"""
This is a tool that analyzes GPG and PGP key rings and stores the
retrieved data in a file database. The tool was inspired by Debian
qa's carnivore.
"""
import configparser
import dbm
import email.utils
import glob
import logging
import os
import os.path
import subprocess
import sys
from importlib import resources
CONFIG = configparser.ConfigParser()
def _get_keyrings():
"""
Gets the available keyring files from the keyring directory
configured in portfolio.ini.
"""
keyring_dir = os.path.expanduser(CONFIG.get("DEFAULT", "keyring.dir"))
logging.debug("keyring dir is %s", keyring_dir)
keyrings = glob.glob(os.path.join(keyring_dir, "*.gpg"))
keyrings.extend(glob.glob(os.path.join(keyring_dir, "*.pgp")))
keyrings.sort()
return keyrings
def _parse_uid(uid):
"""
Parse an uid of the form 'Real Name <email@example.com>' into email
and real name parts.
"""
# First try with the Python library, but it doesn't always catch everything
(name, mail) = email.utils.parseaddr(uid)
if (not name) and (not mail):
logging.warning("malformed uid %s", uid)
if (not name) or (not mail):
logging.debug("strange uid %s: '%s' - <%s>", uid, name, mail)
# Try and do better than the python library
if "@" not in mail:
uid = uid.strip()
# First, strip comment
s = uid.find("(")
e = uid.find(")")
if s >= 0 and e >= 0:
uid = uid[:s] + uid[e + 1 :]
s = uid.find("<")
e = uid.find(">")
mail = None
if s >= 0 and e >= 0:
mail = uid[s + 1 : e]
uid = uid[:s] + uid[e + 1 :]
uid = uid.strip()
if not mail and uid.find("@") >= 0:
mail, uid = uid, mail
name = uid
logging.debug("corrected: '%s' - <%s>", name, mail)
return name, mail
result_dict = {}
def _get_canonical(key):
if key not in result_dict:
result_dict[key] = []
return key
def _add_to_result(key, new_value):
logging.debug("adding %s: %s", key, new_value)
the_key = _get_canonical(key)
if new_value not in result_dict[the_key]:
result_dict[the_key].append(new_value)
def _handle_mail(mail, fpr):
if mail.endswith("@debian.org"):
login = mail[0 : -len("@debian.org")]
_add_to_result("login:email:%s" % mail, login)
_add_to_result("login:fpr:%s" % fpr, login)
_add_to_result("fpr:login:%s" % login, fpr)
_add_to_result("fpr:email:%s" % mail, fpr)
_add_to_result("email:fpr:%s" % fpr, mail)
def _handle_uid(uid, fpr):
mail = None
# Do stuff with 'uid'
if uid:
(uid, mail) = _parse_uid(uid)
if mail:
_handle_mail(mail, fpr)
if uid:
_add_to_result("name:fpr:%s" % fpr, uid)
if mail:
_add_to_result("name:email:%s" % mail, uid)
return fpr
def process_gpg_list_keys_line(line, fpr):
"""
Process a line of gpg --list-keys --with-colon output.
"""
items = line.split(":")
if items[0] == "pub":
return None
if items[0] == "fpr":
return items[9].strip()
if items[0] == "uid":
if items[1] == "r":
return fpr
return _handle_uid(items[9].strip(), fpr)
else:
return fpr
def process_keyrings():
"""Process the keyrings and store the extracted data in an anydbm file."""
for keyring in _get_keyrings():
logging.debug("get data from %s", keyring)
proc = subprocess.Popen(
[
"gpg",
"--no-options",
"--no-default-keyring",
"--homedir",
os.path.expanduser(CONFIG.get("DEFAULT", "gnupghome")),
"--no-expensive-trust-checks",
"--keyring",
keyring,
"--list-keys",
"--with-colons",
"--fixed-list-mode",
"--with-fingerprint",
"--with-fingerprint",
],
stdout=subprocess.PIPE,
)
fpr = None
for line in proc.stdout.readlines():
try:
line = line.decode("utf8")
except UnicodeDecodeError:
line = line.decode("iso8859-1")
fpr = process_gpg_list_keys_line(line, fpr)
ret_code = proc.wait()
if ret_code != 0:
logging.error("subprocess ended with return code %d", ret_code)
dbm_filename = str(
resources.files("debianmemberportfolio.model").joinpath("keyringcache")
)
db = dbm.open(dbm_filename, "c")
for key in result_dict:
db[key] = ":".join(result_dict[key])
db.close()
if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.WARNING)
CONFIG.read_string(
resources.files("debianmemberportfolio.model")
.joinpath("portfolio.ini")
.read_text("utf8")
)
gpg_home = os.path.expanduser(CONFIG.get("DEFAULT", "gnupghome"))
if not os.path.isdir(gpg_home):
os.makedirs(gpg_home, 0o700)
process_keyrings()

View file

@ -1,124 +0,0 @@
#
# Configuration for Debian Member Portfolio Service
#
# Copyright © 2009-2022 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
[DEFAULT]
gnupghome=~/debian/gnupghome
keyring.dir=~/debian/keyring.debian.org/keyrings
urlbuilder.sections=overview,bugs,build,qa,lists,files,membership,
miscellaneous,ssh,ubuntu
[overview]
urls=ddpo,alladdresses
ddpo.pattern=https://qa.debian.org/developer.php?login=%(email)s
alladdresses.pattern=https://qa.debian.org/developer.php?login=%(name)s
[bugs]
urls=received,reported,usertags,searchall,wnpp,correspondent,graph
received.pattern=https://bugs.debian.org/%(email)s
reported.pattern=https://bugs.debian.org/from:%(email)s
usertags.pattern=https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=%(email)s
searchall.pattern=http://bugs-search.debian.org/cgi-bin/search.cgi?phrase=%(name)s;search=search
wnpp.pattern=https://qa.debian.org/developer.php?wnpp=%(email)s
correspondent.pattern=https://bugs.debian.org/cgi-bin/pkgreport.cgi?correspondent=%(email)s
graph.pattern=https://qa.debian.org/data/bts/graphs/by-maint/%(email)s.png
[build]
urls=buildd
buildd.pattern=https://buildd.debian.org/status/package.php?p=%(email)s&compact=compact&comaint=yes
[qa]
urls=lintian,lintianfull,piuparts,dmd,janitor
dmd.pattern=https://udd.debian.org/dmd.cgi?email1=%(email)s
lintian.pattern=https://lintian.debian.org/maintainer/%(email)s.html
lintianfull.pattern=https://lintian.debian.org/full/%(email)s.html
piuparts.pattern=https://piuparts.debian.org/sid/maintainer/%(firstchar)s/%(email)s.html
#patchtracker.pattern=http://patch-tracker.debian.org/email/%(email)s
#duck.pattern=http://duck.debian.net/persons/%(email)s.html
janitor.pattern=https://janitor.debian.net/m/%(email)s
[lists]
urls=dolists,adolists
dolists.pattern=https://lists.debian.org/cgi-bin/search?P="%%22%(name)s%%22&SORT=0
adolists.pattern=https://www.google.com/search?q=site%%3Alists.alioth.debian.org+%%22%(name)s%%22
# debconf list search has a tricky URL format
# http://lists.debconf.org/lurker/search \
# /20100510.202949.00000000@au:%(firstname)s,au:%(lastname)s.en.html
# /YYYYMMDD.HHmmss.hashcode@au:%(firstname)s,au:%(lastname)s.en.html
# maybe this could be implemented using some custom formatter function
[files]
urls=people
people.pattern=https://people.debian.org/~%(username)s/
people.optional=true
[membership]
urls=nm,dbfinger,db,salsa,wiki,forum
nm.pattern=https://nm.debian.org/person/%(username)s
dbfinger.pattern=finger %(username)s@db.debian.org
dbfinger.type=finger
dbfinger.optional=true
db.pattern=https://db.debian.org/search.cgi?uid=%(username)s&dosearch=Search
db.optional=true
#webid.pattern=http://webid.debian.net/maintainers/%(username)s
#webid.optional=true
salsa.pattern=https://salsa.debian.org/%(salsausername)s
salsa.optional=true
wiki.pattern=https://wiki.debian.org/%(wikihomepage)s
forum.pattern=http://forums.debian.net/memberlist.php?mode=viewprofile&u=%(forumsid)s
forum.optional=true
[miscellaneous]
urls=debtags,links,planetname,planetuser,website,search,gpgfinger,gpgweb,contrib,repology
debtags.pattern=https://debtags.debian.org/reports/maint/%(email)s
planetname.pattern=https://planet-search.debian.org/cgi-bin/search.cgi?terms=%%22%(name)s%%22
planetuser.pattern=https://planet-search.debian.org/cgi-bin/search.cgi?terms=%%22%(username)s%%22
planetuser.optional=true
links.pattern=https://www.google.com/search?hl=en&lr=&q=site%%3Adebian.org+%%22%(name)s%%22+-site%%3Anm.debian.org+-site%%3Alintian.debian.org+-site%%3Abugs.debian.org+-site%%3Alists.debian.org+-site%%3Apackages.debian.org+-site%%3Alists.alioth.debian.org+-site%%3Aftp.debian.org++-site%%3Apackages.qa.debian.org++-site%%3Aftp*.*.debian.org+-inurl%%3Adebian.org%%2Fdevel%%2Fpeople.+-inurl%%3Aindices%%2FMaintainers+-inurl%%3Adebian.org%%2Fdebian%%2Fproject++-inurl%%3A%%2Fdists%%2F&btnG=Search
website.pattern=https://www.google.com/search?q=site:www.debian.org+%(name)s
search.pattern=https://search.debian.org/cgi-bin/omega?P=%%22%(name)s%%22
gpgfinger.pattern=finger %(username)s/key@db.debian.org
gpgfinger.type=finger
gpgfinger.optional=true
gpgweb.pattern=https://db.debian.org/fetchkey.cgi?fingerprint=%(openpgpfp)s
gpgweb.optional=true
nm.pattern=https://nm.debian.org/public/person/%(username)s
contrib.pattern=https://contributors.debian.org/contributor/%(email)s
contrib.optional=true
repology.pattern=https://repology.org/maintainer/%(email)s
repology.optional=true
[ssh]
# SSH functions
urls=owndndoms,miainfo,groupinfo
# owned *.debian.net domains
owndndoms.pattern=ldapsearch -u -x -H ldaps://db.debian.org -b dc=debian,dc=org uid=%(username)s dnsZoneEntry
owndndoms.type=ldapsearch
owndndoms.optional=true
# MIA information
miainfo.pattern=ssh qa.debian.org /srv/qa.debian.org/mia/mia-query %(emailnoq)s
miainfo.type=ssh
# Group information
groupinfo.pattern=ssh master.debian.org id %(username)s
groupinfo.type=ssh
groupinfo.optional=true
#[ubuntu]
#urls=ubuntudiff
#ubuntudiff.pattern=http://ubuntudiff.debian.net/q/uploaders/%(email)s

View file

@ -1,141 +0,0 @@
# -*- python -*-
# -*- coding: utf8 -*-
#
# Debian Member Portfolio Service url builder
#
# Copyright © 2009-2023 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
"""
This module provides the function build_urls to build personalized
URLs using the given information and the URL patterns defined in
portfolio.ini.
"""
from configparser import ConfigParser, InterpolationMissingOptionError
from encodings.utf_8 import StreamReader as UTF8StreamReader
from importlib import resources
from urllib.parse import quote_plus
from debianmemberportfolio.model import keyfinder
from flask_babel import gettext as _
from flask_babel import lazy_gettext as N_
my_config = ConfigParser()
ref = resources.files("debianmemberportfolio.model").joinpath("portfolio.ini")
with ref.open("rb") as fp:
my_config.read_file(UTF8StreamReader(fp))
_FIELDNAMES_MAP = {
"email": N_("Email address"),
"name": N_("Name"),
"openpgpfp": N_("OpenPGP fingerprint"),
"username": N_("Debian user name"),
"nonddemail": N_("Non Debian email address"),
"salsausername": N_("Salsa user name"),
}
class DDPortfolioEntry(object):
def __init__(self, config, section, key):
self.name = key
self.optional = (
config.has_option(section, key + ".optional")
and config.getboolean(section, key + ".optional")
or False
)
if config.has_option(section, key + ".type"):
self.type = config.get(section, key + ".type")
else:
self.type = "url"
def _build_quoted_fields(fields):
"""
Take a dictionary of raw field values and quote the values if required.
"""
qfields = {}
for key, value in fields.items():
if value is not None:
if isinstance(value, str):
qfields[key] = quote_plus(value.encode("utf8"))
elif isinstance(value, str):
qfields[key] = quote_plus(value)
else:
qfields[key] = value
qfields[key] = str(qfields[key]).replace("%", "%%")
if "openpgpfp" not in qfields:
fpr = keyfinder.getFingerprintByEmail(fields["email"])
if fpr:
qfields["openpgpfp"] = fpr[0]
qfields["firstchar"] = fields["email"][0]
qfields["emailnoq"] = fields["email"]
return qfields
def build_urls(fields):
"""Build personalized URLs using the developer information in
fields."""
data = []
quoted_fields = _build_quoted_fields(fields)
for section in [
section.strip()
for section in my_config.get("DEFAULT", "urlbuilder.sections").split(",")
]:
data.append(["section", section])
if my_config.has_option(section, "urls"):
for entry in [
DDPortfolioEntry(my_config, section, url)
for url in my_config.get(section, "urls").split(",")
]:
try:
data.append(
[
"url",
section,
entry,
my_config.get(
section,
entry.name + ".pattern",
raw=False,
vars=quoted_fields,
),
]
)
except InterpolationMissingOptionError as e:
if not entry.optional:
if e.reference in _FIELDNAMES_MAP:
data.append(
[
"error",
section,
entry,
_("Missing input: %s")
% _(_FIELDNAMES_MAP[e.reference]),
]
)
else:
data.append(
[
"error",
section,
entry,
_("Missing input: %s") % e.reference,
]
)
return data

View file

@ -1,44 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
{# vim: ft=jinja
Base template for XHTML templates.
Copyright © 2009-2022 Jan Dittberner <jan@dittberner.info>
This file is part of the Debian Member Portfolio service.
Debian Member Portfolio service 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.
Debian Member Portfolio service 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 <https://www.gnu.org/licenses/>.
#}
<html>
<head>
<title>{% block title %}{{ _('Debian Member Portfolio Service') }}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='stylesheets/style.css') }}" />
{% block extrahead %}{% endblock %}
</head>
<body>
<div id="header">
<img alt="{{ _('Debian Logo') }}" id="debianlogo" src="{{ url_for('static', filename='images/openlogo-100.jpg') }}" height="100" width="100" />
<h1>{{ _('Debian Member Portfolio Service') }}</h1>
<p>{% trans %}This service has been inspired by Stefano Zacchiroli's <a href="https://wiki.debian.org/DDPortfolio">DDPortfolio page in the Debian Wiki</a>. You can create a set of customized links leading to a Debian Member's or package maintainer's information regarding Debian.{% endtrans %}</p>
<p><a class="FlattrButton" style="display:none" title="Debian Member Portfolio Service" href="{{ request.scheme }}://portfolio.debian.net/">Debian Member Portfolio Service</a></p>
</div>
<div id="content">
{% block body %}{% endblock %}
</div>
<div id="footer">
<img alt="{{ _('AGPL - Free Software') }}" id="agpllogo" src="{{ url_for('static', filename='images/agplv3-88x31.png') }}" width="88" height="31" />
<p>{% trans browseurl='https://git.dittberner.info/jan/debianmemberportfolio', cloneurl='https://git.dittberner.info/jan/debianmemberportfolio.git', weblateurl='https://hosted.weblate.org/projects/debian-member-portfolio-service/' %}The service is available under the terms of the <a href="https://www.gnu.org/licenses/agpl.html">GNU Affero General Public License</a> as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. You can <a href="{{ browseurl }}" title="Gitweb repository browser URL">browse the source code</a> or clone it from <a href="{{ cloneurl }}" title="git clone URL">{{ cloneurl }}</a> using <a href="https://git-scm.com/">git</a>. If you want to translate this service to your language you can contribute at <a href="{{ weblateurl }}" title="Debian Member Portfolio Service at Weblate">Weblate</a>.{% endtrans %}</p>
<p>{{ _('Copyright © 2009-2023 Jan Dittberner') }}</p>
</div>
</body>
</html>

View file

@ -1,103 +0,0 @@
{% extends "base.html" %}
{#
Template for the data input form.
Copyright © 2009-2022 Jan Dittberner <jan@dittberner.info>
This file is part of the Debian Member Portfolio service.
Debian Member Portfolio service 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.
Debian Member Portfolio service 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 <https://www.gnu.org/licenses/>.
#}
{% block title %}{{ super()}} - {{ _('Enter your personal information') }}{% endblock %}
{% block extrahead %}{{ super() }}<script type="text/javascript" src="{{ url_for('static', filename='javascript/jquery/jquery.js') }}"></script>
<script type="text/javascript" src="{{ url_for('formhelper_js') }}"></script>
{% endblock %}
{% block body %}{{ super() }}
<form action="{{ url_for('urllist') }}" method="get">
<fieldset id="portfolio">
<legend>{{ _('Debian Member Portfolio') }}</legend>
<div id="emailfield"{% if form.email.errors %} class="witherrors"{% endif %}>
<label for="email">{{ _('Email address:') }}
{% if form.email.errors %}<br />
<span class="errormsg">{{ form.email.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.email }}<br />
</div>
<div id="showallfield" class="hidden">
<input type="checkbox" id="showall" name="showall"/>
<label for="showall">{{ _('Show all form fields') }}</label><br />
</div>
<div id="namefield"{% if form.name.errors %} class="witherrors"{% endif %}>
<label for="name">{{ _('Name:') }}{% if form.name.errors %}<br />
<span class="errormsg">{{ form.name.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.name }}
</div>
<div id="openpgpfpfield"{% if form.openpgpfp.errors %} class="witherrors"{% endif %}>
<label for="openpgpfp">{{ _('OpenPGP fingerprint:') }}{% if form.openpgpfp.errors %}<br />
<span class="errormsg">{{ form.openpgpfp.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.openpgpfp }}
</div>
<div id="usernamefield"{% if form.username.errors %} class="witherrors"{% endif %}>
<label for="username">{{ _('Debian user name:') }}{% if form.username.errors %}<br />
<span class="errormsg">{{ form.username.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.username }}
</div>
<div id="nonddemailfield"{% if form.nonddemail.errors %} class="witherrors"{% endif %}>
<label for="nonddemail">{{ _('Non Debian email address:') }}{% if form.nonddemail.errors %}<br />
<span class="errormsg">{{ form.nonddemail.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.nonddemail }}
</div>
<div id="salsausernamefield"{% if form.salsausername.errors %} class="witherrors"{% endif %}>
<label for="salsausername">{{ _('Salsa user name:') }}{% if form.salsausername.errors %}<br />
<span class="errormsg">{{ form.salsausername.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.salsausername }}
</div>
<div id="wikihomepagefield"{% if form.wikihomepage.errors %} class="witherrors"{% endif %}>
<label for="wikihomepage">{{ _('Wiki user name:') }}{% if form.wikihomepage.errors %}<br />
<span class="errormsg">{{ form.wikihomepage.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.wikihomepage }}
</div>
<div id="forumsidfield"{% if form.forumsid.errors %} class="witherrors"{% endif %}>
<label for="forumsid">{{ _('Forum user id:') }}{% if form.forumsid.erros %}<br />
<span class="errormsg">{{ form.forumsid.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.forumsid }}
</div>
<div id="modefield"{% if form.mode.errors %} class="witherrors"{% endif %}>
<label for="mode">{{ _('Output format:') }}{% if form.mode.errors %}<br />
<span class="errormsg">{{ form.mode.errors|join(', ') }}</span>
{% endif %}
</label><br />
{% for subfield in form.mode %}
{{ subfield.label }}&#160;{{ subfield }}
{% endfor %}<br />
<input type="submit" value="{{ _('Build Debian Member Portfolio URLs') }}" />
</div>
</fieldset>
</form>
{% endblock %}

View file

@ -1,119 +0,0 @@
{# vim: ft=jinja
Helper JavaScript for the data input form.
Copyright © 2009-2022, Jan Dittberner <jan@dittberner.info>
This file is part of the Debian Member Portfolio service.
Debian Member Portfolio service 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.
Debian Member Portfolio service 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 <https://www.gnu.org/licenses/>.
#}
var defaulthiddendivs = new Array(
'#namefield', '#openpgpfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
var maskedfielddivs = new Array(
'#namefield', '#openpgpfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
var allfielddivs = new Array(
'#namefield', '#openpgpfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
function updateFields(data, textStatus) {
if (data.type == 2) { // DD
$('#name').prop('value', data.name).prop('readonly', 'readonly');
$('#openpgpfp').prop('value', data.openpgpfp);
$('#username').prop('value', data.username).prop(
'readonly', 'readonly');
$('#nonddemail').prop('value', data.email).focus();
$('#salsausername').prop('value', data.username);
$('#wikihomepage').prop('value', data.wikihomepage);
$('#namefield').show();
$('#openpgpfpfield').show();
$('#usernamefield').show();
$('#nonddemailfield').show();
$('#salsausernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#nonddemail').focus().select();
} else if (data.type == 1) { // DM
$('#name').prop('value', data.name).prop('readonly', 'readonly');
$('#openpgpfp').prop('value', data.openpgpfp);
$('#username').prop('value', '');
$('#nonddemail').prop('value', data.email).focus();
$('#wikihomepage').prop('value', data.wikihomepage);
$('#namefield').show();
$('#openpgpfpfield').show();
$('#usernamefield').hide();
$('#nonddemailfield').hide();
$('#salsausernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#salsausername').focus().select();
} else {
$('#nonddemail').prop('value', data.email);
$('#name').removeAttr('readonly');
$('#username').removeAttr('readonly').prop('value', '');
$('#openpgpfp').prop('value', '');
$('#usernamefield').hide();
$('#openpgpfpfield').hide();
$('#nonddemailfield').hide();
$('#namefield').show();
$('#salsausernamefield').show();
$('#wikihomepagefield').show();
$('#forumsidfield').show();
$('#name').focus().select();
}
}
function onChangeShowAll(event) {
if ($('#showall').prop('checked')) {
for (var fielddiv in allfielddivs) {
$(allfielddivs[fielddiv]).show();
}
} else {
for (var fielddiv in maskedfielddivs) {
$(maskedfielddivs[fielddiv]).hide();
}
}
}
function onBlurEmail() {
if ($.trim($('#email').prop('value')).length > 0) {
$.ajax({
'url' : '{{ url_for("fetchdddata") }}',
'data' : {'email' : $('#email').prop('value')},
'dataType' : 'json',
'success' : updateFields,
'error' : function(request, textStatus, errorThrown) {
$('#email').focus();
}
});
}
}
$(document).ready(function() {
for (var index in defaulthiddendivs) {
if (!$(defaulthiddendivs[index]).hasClass('witherrors')) {
$(defaulthiddendivs[index]).hide();
}
}
$('#showall').prop('checked', false).change(onChangeShowAll);
$('#showallfield').show();
$('#email').blur(onBlurEmail).focus();
});

View file

@ -1,61 +0,0 @@
{% extends "base.html" %}
{#
Template for the url output page.
Copyright © 2009-2015 Jan Dittberner <jan@dittberner.info>
This file is part of Debian Member Portfolio Service.
Debian Member Portfolio Service 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.
Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#}
{% block title %}{{ super() }} - {{ _('Your personal links') }}{% endblock %}
{% block body %}{{ super() }}
{% if urldata %}
<fieldset id="portfolio">
<legend>{{ _('Debian Member Porfolio') }}</legend>
<table id="urltable">
<thead>
<tr><th>{{ _('Usage') }}</th><th>{{ _('URL') }}</th></tr>
</thead>
<tbody>
{% for row in urldata %}
{% if row[0] == 'section' %}
<tr class="section"><th class="sectionlabel" colspan="2">{{ row[2] }}</th></tr>
{% set urlclass = 'odd' %}
{% elif row[0] == 'error' %}
<tr class="error">
<td>{{ row[4] }}</td>
<td>{{ _('Error during URL creation:') }}
<span class="errormsg">{{ row[3]|replace("\n", "<br />") }}</span></td>
</tr>
{% else %}
<tr class="url {{ urlclass }}">
<td>{{ row[4]|safe }}</td>
<td>
{% if row[2].type == 'url' %}
<a href="{{ row[3] }}">{{ row[3]|truncate(120) }}</a>
{% else %}
<tt>{{ row[3] }}</tt>
{% endif %}
</td>
</tr>
{% if urlclass == "odd" %}{% set urlclass = "even" %}{% else %}{% set urlclass = "odd" %}{% endif %}
{% endif %}
{% endfor %}
</tbody>
</table>
</fieldset>
{% endif %}
<p><a href="{{ url_for('urllist') }}">{{ _('Restart') }}</a></p>
{% endblock body %}

View file

@ -1,379 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.6.4\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2021-07-03 11:15+0200\n"
"Last-Translator: Automatically generated\n"
"Language: ar\n"
"Language-Team: none\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 ? 4 : 5;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr ""
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr ""
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr ""
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr ""
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr ""
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr ""
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr ""
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr ""
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr ""
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,402 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.6.4\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-09-25 17:18+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language: de\n"
"Language-Team: German <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Überblick"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Paketübersicht des Debian-Mitglieds"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Paketübersicht des Debian-Mitglieds\n"
"... mit allen E-Mailadressen"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Fehler"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Erhaltene Fehlerberichte\n"
"(Anmerkung: Co-Maintainer werden nicht aufgeführt, siehe <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Berichtete Fehler"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "User Tags"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "Beitragender zu Fehlern"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Graph der Entwicklung offener Fehlerberichte über ein Jahr"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Bauen"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "Igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Qualitätssicherung"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "Maintainer Dashboard"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Lintian-Berichte"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"vollständige Lintian-Berichte (d.h. inklusive Meldungen der Stufe "
"\"info\")"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian Janitor"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Mailinglisten"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Dateien"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Mitgliedschaft"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "DB-Informationen per finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "DB-Informationen per HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Sonstiges"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (Name)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (Benutzername)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "Links"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian Webseite"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian-Suche"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "öffentlicher OpenPGP-Schlüssel per finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "öffentlicher OpenPGP-Schlüssel per HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM-, AM-Mitwirkung"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Debian Contributor-Informationen"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Repology-Informationen"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Per ssh erreichbare Informationen (für Debian Mitglieder)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "Besitz von debian.net-Domains"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Informationen in der <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-Datenbank"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Information über Gruppenmitgliedschaften"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "E-Mailadresse"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Name"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP-Fingerabdruck"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian-Benutzername"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Nicht-Debian-E-Mailadresse"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsa-Benutzername"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Fehlende Eingabe: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Debian-Mitglieder-Portfolioservice"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debian-Logo"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Dieser Dienst wurde durch Stefano Zacchirolis <a "
"href=\"http://wiki.debian.org/DDPortfolio\">DDPortfolio-Seite im Debian "
"Wiki</a> inspiriert. Mit dem Dienst können personalisierte Links zu "
"Informationen im Bezug auf Debian für Debian-Mitglieder und Paketbetreuer"
" erzeugt werden."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Freie Software"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Dieser Dienst wird unter den Bedingungen der <a "
"href=\"http://www.gnu.org/licenses/agpl.html\">GNU Affero General Public "
"License</a>, so wie sie von der Free Software Foundation veröffentlicht "
"ist, bereitgestellt. Sie können entweder Version 3 oder (auf Ihren Wunsch"
" hin) jede spätere Version der Lizenz verwenden. Sie können sich <a "
"href=\"%(browseurl)s\" title=\"Gitweb Repository-Browser-URL\">den "
"Quelltext ansehen</a> oder mit <a href=\"http://git-scm.com\">git</a> von"
" <a href=\"%(cloneurl)s\" title=\"Git Clone-URL\">%(cloneurl)s</a> "
"klonen. Wenn Sie diesen Service in Ihre Sprache übersetzen möchten, "
"können Sie auf <a href=\"%(weblateurl)s\" title=\"Debian Member Portfolio"
" Service bei Weblate\">Weblate</a> dazu beitragen."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Eingabe der persönlichen Informationen"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Debian-Mitglieder-Portfolioservice"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "E-Mailadresse:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Alle Formularfelder anzeigen"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Name:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "OpenPGP-Fingerabdruck:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debian-Benutzername:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Nicht-Debian-E-Mailadresse:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsa-Benutzername:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wiki-Benutzername:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Forumsbenutzernummer:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Ausgabeformat:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Debian-Mitgliedsportfolio-URLs bauen"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Ihre personalisierten Links"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Debian-Mitgliederportfolio"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Verwendung"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Fehler bei der URL-Erzeugung:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Neu beginnen"

View file

@ -1,382 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-12-11 12:51+0000\n"
"Last-Translator: george kitsoukakis <norhorn@gmail.com>\n"
"Language: el\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Επισκόπηση"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Σφάλματα"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"ληφθέντα σφάλματα\n"
"(σημείωση: οι συντηρητές δε συμπεριλαμβάνονται, δείτε <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "σφάλματα που αναφέρθηκαν"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "ετικέτες χρηστών"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Διασφάλιση ποιότητας"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "πίνακας ελέγχου συντηρητή"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Λίστες αλληλογραφίας"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Αρχεία"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Μέλη"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "ΝΜ"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Πληροφορίες DB μέσω HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Φόρουμ"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Διάφορα"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (όνομα)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (όνομα χρήστη)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "σύνδεσμοι"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Ιστότοπος του Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Αναζήτηση στο Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Δημόσιο κλειδί OpenPGP μέσω HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Συμμετοχή NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"πληροφορίες βάσης δεδομένων"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Διεύθυνση email"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Όνομα"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Ψηφιακό αποτύπωμα OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Όνομα χρήστη Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Όνομα χρήστη salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Λογότυπο Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Ελεύθερο Λογισμικό"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Πνευματικά δικαιώματα © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Εισαγάγετε τα προσωπικά σας στοιχεία"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Διεύθυνση email:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Εμφάνιση όλων των πεδίων της φόρμας"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Ονομα:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Ψηφιακό αποτύπωμα OpenPGP:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Όνομα χρήστη Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Όνομα χρήστη salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Όνομα χρήστη Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Οι προσωπικοί σας σύνδεσμοι"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Χρήση"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Σφάλμα κατά τη δημιουργία URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Επανεκκίνηση"

View file

@ -1,376 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.6.4\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-11-06 14:08+0000\n"
"Last-Translator: phlostically <phlostically@mailinator.com>\n"
"Language: eo\n"
"Language-Team: Esperanto <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/eo/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Superrigardo"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Cimoj"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "cimoj raportitaj"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "etikedoj de uzanto"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Dissendolistoj"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Dosieroj"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Aneco"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Vikio"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forumo"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "ligiloj"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Retejo de Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Serĉi ĉe Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "Posedataj subretejoj de debian.net"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Retpoŝta adreso"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nomo"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP-fingrospuro"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Salutnomo ĉe Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Retpoŝta adreso ekster Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salutnomo ĉe Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Kopirajtoj © 20092023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Tajpu viajn personajn informojn"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Paperujo de Debian-ano"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Retpoŝta adreso:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nomo:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salutnomo ĉe salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Salutnomo ĉe vikio:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Salutidentigilo ĉe Forumo:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Paperujo de Debian-ano"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Uzado"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""

View file

@ -1,401 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-10-10 18:04+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language: es\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/es/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Visión general"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Visión general de paquetes del miembro de Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Visión general de paquetes del miembro de Debian\n"
"… se muestran todas las direcciones de correo"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Fallos"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"fallos recibidos\n"
"(nota: no se muestran los corresponsables; véase el informe <a "
"href=\"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430986\">n.º "
"430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "fallos informados"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "etiquetas de usuario"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "contacto para fallos"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "gráfico de histórico anual de informes de error abiertos"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Generación de paquetes"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "build ddo"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "iglú"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Control de calidad"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "tablero de responsable"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "informes de lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "informes íntegros de lintian (es decir, incluyen mensajes de nivel «info»)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts (Debian)"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Conserje de Debian"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Listas de correo"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "listas.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "listas.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Archivos"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "gente.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "personasmayores"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Membresía"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "Nanómetro"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Información de BD a través de Finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Información de BD a través de HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Foro"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Varios"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags (Debian)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nombre)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (nombre de usuario)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "enlaces"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Sitio web de Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Búsqueda en Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Clave pública de OpenPGP a través de Finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Clave pública de OpenPGP a través de HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Participación en NM y AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Información de contribución"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Información de Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Información accesible a través de SSH (para miembros de Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "titularidad de dominios debian.net"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Información de la base de datos <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Información de membresía a grupos"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Dirección de correo"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nombre"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Huella OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Nombre de usuario de Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Direcciones de correo no de Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Nombre de usuario de Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Falta la entrada: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Servicio de portafolios para miembros de Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logotipo de Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"La inspiración para este servicio provino de la <a "
"href=\"https://wiki.debian.org/DDPortfolio\">página «DDPortfolio» del "
"wiki de Debian</a>, ideada por Stefano Zacchiroli. Puede crear un juego "
"de enlaces personalizados que apunten a la información relacionada con "
"Debian sobre un/a miembro del proyecto o responsable de paquete."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL: «software» libre"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"El servicio se pone a su disposición en virtud de los términos de la <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Licencia Pública General "
"Affero de GNU</a>, tal como la publica al Free Software Foundation, sea "
"bien la versión 3 de la Licencia o bien cualquier otra versión posterior "
"de su preferencia. Puede <a href=\"%(browseurl)s\" title=\"URL del "
"explorador de repositorios Gitweb\">explorar el código fuente</a> o "
"clonarlo desde <a href=\"%(cloneurl)s\" title=\"URL para utilizar con "
"«git clone»\">%(cloneurl)s</a> sirviéndose de <a href=\"https://git-"
"scm.com/\">git</a>. Si quiere contribuir traduciendo este servicio a su "
"lengua, puede hacerlo a través de <a href=\"%(weblateurl)s\" "
"title=\"Servicio de portafolios de miembros de Debian en "
"Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Derechos de autor © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Proporcione su información personal"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portafolio de miembro de Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Dirección de correo:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Mostrar todos los campos del formulario"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nombre:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Huella digital OpenPGP:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nombre de usuario de Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Dirección de correo no de Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Nombre de usuario de Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nombre de usuario del wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Identificador de usuario del foro:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Formato de salida:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Crear los URL para portafolio de miembro de Debian"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Sus enlaces personales"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portafolio de miembro de Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Uso"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Se produjo un error al crear el URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Reiniciar"

View file

@ -1,400 +0,0 @@
# French translations for the Debian Member Portfolio Service
#
# Copyright (C) 2012 Stéphane Aulery
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Stéphane Aulery <lkppo@free.fr>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-10-17 08:01+0000\n"
"Last-Translator: Olivier Humbert <trebmuh@tuxfamily.org>\n"
"Language: fr\n"
"Language-Team: French <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Vue d'ensemble"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Vue d'ensemble des paquets du membre Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Vue d'ensemble des paquets du membre Debian\n"
"... affichage de tous les courriels"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Bogues"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Bogues reçus\n"
"(note : co-responsables non listés, voir <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Bogues rapportés"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "Tags utilisateur"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "Correspondant pour les bogues"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Graphique de l'évolution des bogues ouverts sur l'année écoulée"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Construire"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Assurance qualité"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "tableau de bord du mainteneur"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Rapports lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "Rapports lintian complets (c-à-d incluant les messages de niveau \"info\")"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "Piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian Janitor"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Listes de diffusion"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Fichiers"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "anciens"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Adhésion"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "BD dinformations via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "BD dinformations via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Divers"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "Debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nom)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (nom dutilisateur)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "Liens"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Site web de Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Recherche Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Clef OpenPGP publique via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Clef OpenPGP publique via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "participation NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Informations de contribution"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informations de Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informations accessibles via ssh (pour les membres de Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "Propriété des domaines debian.net"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Informations de la base de données <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Information sur ladhésion de groupe"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Courriel"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nom"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Empreinte OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Nom dutilisateur Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Courriel hors Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Nom dutilisateur Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Entrée manquante : %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Service de portefeuille des membres de Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Ce service a été inspiré par <a "
"href=\"https://wiki.debian.org/DDPortfolio\">la page DDPortfolio du Wiki "
"de Debian</a> de Stefano Zacchiroli. Vous pouvez créer un ensemble "
"personnalisé de liens fournissant des informations sur un membre ou un "
"mainteneur de paquet de Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Logiciel libre"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Ce service est disponible sous les termes de la licence <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> telle que publiée par la Free Software Foundation, soit la "
"version 3 de la licence, ou (à votre choix) toute version ultérieure. "
"Vous pouvez <a href=\"%(browseurl)s\" title=\"Gitweb repository browser "
"URL\">parcourir le code source</a> ou le cloner depuis <a "
"href=\"%(cloneurl)s\" title=\"git clone URL\">%(cloneurl)s</a> en "
"utilisant <a href=\"http://git-scm.com/\">git</a>. Si vous voulez "
"traduire ce service dans votre langage, vous pouvez contribuer chez <a "
"href=\"%(weblateurl)s\" title=\"Debian Member Portfolio Service at "
"Weblate\"> Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Saisissez vos informations personnelles"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portefeuille dun Membre de Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Courriel :"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Afficher tous les champs du formulaire"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nom :"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Empreinte OpenPGP :"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nom dutilisateur Debian :"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Courriel hors Debian :"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Nom dutilisateur Salsa :"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nom dutilisateur Wiki :"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Numéro dutilisateur Forum :"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Format de sortie :"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Construire les URLs du portefeuille du membre de Debian"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Vos liens personnels"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portefeuille dun membre de Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Utilisation"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Erreur durant la création de lURL :"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Recommencer"

View file

@ -1,385 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.6.4\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2021-11-12 17:50+0000\n"
"Last-Translator: KushagraKarira <kushagrakarira@gmail.com>\n"
"Language: hi\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/hi/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "जैसन"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "एचटीएमएल"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "अवलोकन"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "डेबियन सदस्य का पैकेज अवलोकन"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"डेबियन सदस्य का पैकेज अवलोकन\n"
"... सभी ईमेल पते दिखा रहा है"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "बग"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"बग प्राप्त \n"
"(नोट: सह-रखरखाव सूचीबद्ध नहीं हैं, देखें <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "बग की सूचना दी"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "उपयोगकर्ता टैग"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\"> WNPP </a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "बग के लिए संवाददाता"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "एक साल का खुला बग इतिहास ग्राफ"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "बिल्ड"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "इग्लू"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "गुणवत्ता आश्वासन"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "अनुरक्षक डैशबोर्ड"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "लिंटियन रिपोर्ट"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "पूर्ण लिंटियन रिपोर्ट (यानी \"जानकारी\" स्तर के संदेशों सहित)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "पियुपार्ट्स"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "डेबियन चौकीदार"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "ईमेल की सूची"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "फ़ाइलें"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "वृध्द लोग"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "सदस्यता"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "एनएम"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "उंगली के माध्यम से डीबी जानकारी"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "HTTP के माध्यम से डीबी जानकारी"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "सालसा"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "विकि"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "फ़ोरम"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "विविध"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "देनदारी"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "प्लेनेट डेबियन (नाम)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "प्लैनेट डेबियन (उपयोगकर्ता नाम)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "लिंक्स"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "डेबियन वेबसाइट"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "डेबियन खोज"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,400 +0,0 @@
# Indonesian translations for Debian Member Portfolio Service.
#
# Copyright (C) 2012 Izharul Haq
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Izharul Haq <atoz.chevara@yahoo.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service\n"
"Report-Msgid-Bugs-To: atoz.chevara@yahoo.com\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2021-07-12 01:32+0000\n"
"Last-Translator: Reza Almanda <rezaalmanda27@gmail.com>\n"
"Language: id\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/id/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Gambaran Umum"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Gambaran Umum Paket Anggota Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Gambaran Umum Paket Anggota Debian\n"
"... tampilkan semua alamat email"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Kutu"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"bugs diterima\n"
"(catatan: co-maintainers tidak tercantum, lihat <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "melaporkan bug"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "label pengguna"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "koresponden untuk bug"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "grafik perkembangan laporan bug terbuka lebih dari setahun"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Bangun"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Jaminan Mutu"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "dasbor maintainer"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "laporan lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "seluruh pesan lintian (i.e. termasuk pesan \"info\"-level)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Petugas Kebersihan Debian"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Milis"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Berkas-berkas"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Keanggotaan"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "informasi DB melalui finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "informasi DB melalui HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Lain-Lain"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nama)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (nama pengguna)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "tautan"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "website Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "pencarian Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "kunci publik OpenPGP melalui finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "kunci publik OpenPGP melalui HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "partisipasi NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Informasi kontribusi"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informasi repologi"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informasi dicapai melalui ssh (untuk Anggota Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "domain debian.net sendiri"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"informasi database <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informasi keanggotaan kelompok"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Alamat Email"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nama"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "sidik jari OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "nama pengguna Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Selain alamat email Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "nama pengguna Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Tidak ada masukan: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Layanan Portfolio Anggota Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Layanan ini terinspirasi dari halaman <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio Stefano "
"Zacchiroli di Wiki Debian</a>. Anda dapat membuat sebuah link kustom yang"
" mengarah ke Anggota Debian atau informasi mengenai pengelola paket "
"Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Free Software"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Layanan ini tersedia di bawah persyaratan <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> seperti yang diterbitkan oleh Free Software Foundation, baik"
" versi 3 dari Lisensi, atau (dengan pilihan Anda) versi lainnya. Anda "
"dapat <a href=\"%(browseurl)s\" title=\"Gitweb repository browser "
"URL\">menelusuri kode sumber</a> atau klon dari <a href=\"%(cloneurl)s\" "
"title=\"git clone URL\">%(cloneurl)s</a> menggunakan <a href=\"http"
"://git-scm.com/\">git</a>.\n"
"Jika anda ingin menerjemahkan layanan ini ke dalam bahasa anda, anda "
"dapat berkontribusi di <a href=\"%(weblateurl)s\" title=\"Debian Member "
"Portfolio Service at Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Hak Cipta © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Masukkan informasi data pribadi anda"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portfolio Anggota Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Alamat surel:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Tampilkan semua bagian formulir"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nama:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "sidik jari OpenPGP"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nama pengguna Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Selain alamat email Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Nama pengguna Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nama pengguna Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "ID pengguna Forum:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Format Keluaran:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Membangun URL Portfolio Anggota Debian"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Tautan pribadi anda"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portfolio Anggota Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Penggunaan"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Kesalahan selama pembuatan URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Mulai ulang"

View file

@ -1,388 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2020-09-27 13:40+0000\n"
"Last-Translator: Shuji Sado <sado@osdn.jp>\n"
"Language: ja\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/ja/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "概要"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Debianメンバーのパッケージ概要"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debianメンバーのパッケージ概要\n"
"... 全メールアドレス表示"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "バグ"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"受領したバグ\n"
"(注: 共同メンテナーはリストされていません。<a href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>を参照)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "報告したバグ"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "ユーザータグ"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "1年間にオープンしたバグの履歴グラフ"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "ビルド"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "品質保証"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "メンテナダッシュボード"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Lintianレポート"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "メーリングリスト"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "ファイル"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "メンバーシップ"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "フォーラム"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "その他"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (名前)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (ユーザー名)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "リンク"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian webサイト"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian検索"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "finger経由のOpenPGP公開鍵"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "HTTP経由のOpenPGP公開鍵"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "貢献情報"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Repology情報"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr "<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> データベース情報"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Emailアドレス"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "名前"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian ユーザー名"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Debian以外のメールアドレス"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsaユーザー名"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Debianメンバー・ポートフォリオ・サービス"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debianロゴ"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"このサービスは、Debian Wiki の Stefano Zacchiroli さんによる <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio "
"ページ</a>にヒントを得ています。 Debian メンバーやパッケージメンテナの Debian "
"に関する情報につながるカスタマイズされたリンクのセットを作成することができます。"
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - フリーソフトウェア"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Debianメンバーポートフォリオ"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Emailアドレス:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "名前:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debianユーザー名:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Debian以外のメールアドレス:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsaユーザー名:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wikiユーザー名:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "フォーラムのユーザーID:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "あなたの個人的なリンク"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Debianメンバーポートフォリオ"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,381 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2019-12-14 20:21+0000\n"
"Last-Translator: Prachi Joshi <josprachi@yahoo.com>\n"
"Language: mr\n"
"Language-Team: Marathi <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/mr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "एचटीएमएल"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "आढावा"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "डेबियन सदस्याचे पॅकेज विहंगावलोकन"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"डेबियन सदस्याचे पॅकेज विहंगावलोकन\n"
"... सर्व ईमेल पत्ते दर्शवित आहे"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "बग"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "बग नोंदवले"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "वापरकर्ता टॅग"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "बग साठी संवाददाता"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "एक वर्षाचा ओपन बग हिस्ट्री ग्राफ"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "बांधा"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "इग्लू"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "गुणवत्ता हमी"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "देखभालकर्ता डॅशबोर्ड"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr ""
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,397 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2023-02-05 05:38+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language: nb\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects"
"/debian-member-portfolio-service/translations/nb_NO/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Oversikt"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Debian-medlemmers pakkeoversikt"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debianmedlemmers pakkeoversikt\n"
"… viser alle e-postadresser"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Feil"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"feilrapporter mottatt\n"
"(merk: med-vedlikeholdere er ikke listet opp, se <a "
"href=\"https://bugs.debian.org/430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "feil rapportert"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "brukermerker"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "korrespondent for feilrapporter"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Graf over feilrapporter som har vært åpen mer enn et år"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Bygg"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "iglo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Kvalitetssikring"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "Vedlikeholdersoversikt"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "lintian-rapporter"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "Komplette lintian-rapporter (dvs. også meldinger med nivå «info»)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian-vaktmester"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "E-postlister"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Filer"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Medlemskap"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "DB-informasjon via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "DB-informasjon via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Diverse"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (navn)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (brukernavn)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "lenker"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian-nettsiden"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian-søk"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Offentlig OpenPGP-nøkkel via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Offentlig OpenPGP-nøkkel via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM-, AM-deltagelse"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Bidragsinformasjon"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Depotologiinformasjon"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informasjon tilgjengelig via ssh (for Debian-medlemmer)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "eide debian.net -domener"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Informasjon i <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-databasen"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Gruppemedlemskapsinformasjon"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "E-postadresse"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Navn"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP-fingeravtrykk"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian-brukernavn"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "E-postadresser utenom Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsa-brukernavn"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Manglende inndata: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Debian-medlems portfoliotjeneste"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debian-logo"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Denne tjenesten er inspirert av Stefano Zacchiroli sin <a "
"href=\"https://wiki.debian.org/DDPortfolio\"> DDPortfolio-side i Debian-"
"wikien</a>. Du kan lage et sett med tilpassede lenker som leder til et "
"Debian-medlems eller -pakkevedlikeholders informasjon om Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Fri programvare"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Tjenesten er tilgjengelig i tråd med vilkårene i <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> som publisert av Free Software Foundation, enten versjon 3 "
"av lisensen eller (etter ditt valg) enhver senere versjon. Du kan <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">se gjennom"
" kildekoden</a> eller lage en klone av det fra <a href=\"%(cloneurl)s\" "
"title=\"git clone URL\">%(cloneurl)s</a> ved å bruke <a href=\"https"
"://git-scm.com/\">git</a>. Hvis du ønsker å oversette denne tjenesten til"
" ditt språk kan du bidra ved å bruke<a href=\"%(weblateurl)s\" "
"title=\"Debian Member Portfolio Service at Weblate\"> Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Opphavsrett © 20092023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Skriv inn informasjon om deg selv"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Debian-medlems portfolio"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "E-postadresse:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Vis alle felt i skjema"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Navn:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "OpenPGP-fingeravtrykk"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debian-brukernavn:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "E-postadresse utenom Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsa-brukernavn:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wiki-brukernavn:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Forum-brukerid:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Fremvisningsformat:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Bygg Debian-medlemsportfolio-URLer"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Dine personlige lenker"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Debian-medlems portfolio"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Bruk"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Feil under oppretting av URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Start om igjen"

View file

@ -1,401 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2021-07-03 10:30+0000\n"
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
"Language: nl\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/nl/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Overzicht"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Pakketoverzicht van Debian-leden"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Pakketoverzicht van Debian-leden\n"
"... alle e-mailadressen worden weergegeven"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"ontvangen bugs\n"
"(let op: mede-beheerders staan niet op de lijst, zie <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "gemelde bugs"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "gebruikerslabels"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "correspondent voor bugs"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "grafiek van de evolutie van bugs die één jaar openstaan"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Bouwen"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Kwaliteitsverzekering"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "beheerpaneel"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "lintian-rapporten"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"volledige lintian-rapporten (d.w.z. inclusief berichten van het niveau "
"info)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian-conciërge"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Mailinglijsten"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Bestanden"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oud-medewerkers"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Lidmaatschap"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "DB-informatie via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "DB-informatie via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Diversen"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (naam)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (gebruikersnaam)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "links"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian-website"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian-zoeken"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "OpenPGP openbare sleutel via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "OpenPGP openbare sleutel via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM, AM-deelname"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Bijdrage-informatie"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Repology-informatie"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Via ssh toegankelijke informatie (voor Debian-leden)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "debian.net-domeinnamen in eigendom"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>-databankinformatie"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informatie over groepslidmaatschap"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "E-mailadres"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Naam"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP-vingerafdruk"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian-gebruikersnaam"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "E-mailadres buiten Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsa-gebruikersnaam"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Ontbrekende invoer: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Portfolio met Debian-leden"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debian-logo"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Deze dienst is geïnspireerd op Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio-pagina op de "
"Debian-wiki</a>. U kunt een set aangepaste links creëren die leiden naar "
"Debian-gerelateerde informatie over een lid of pakketbeheerder van "
"Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Vrije software"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Deze dienst is beschikbaar onder de voorwaarden van de <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a>, zoals gepubliceerd door de Free Software Foundation, zowel "
"versie 3, als (optioneel) een hogere versie. U kunt <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">door de "
"broncode bladeren</a> of deze klonen van <a href=\"%(cloneurl)s\" "
"title=\"git clone URL\">%(cloneurl)s</a> m.b.v. <a href=\"http://git-"
"scm.com/\">git</a>. Als u deze dienst wilt vertalen naar uw eigen taal, "
"dan kunt u bijdragen op <a href=\"%(weblateurl)s\" title=\"Debian Member "
"Portfolio Service at Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Voer uw persoonlijke informatie in"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portfolio van een Debian-lid"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "E-mailadres:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Alle formuliervelden tonen"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Naam:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "OpenPGP-vingerafdruk"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debian-gebruikersnaam:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "E-mailadres buiten Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsa-gebruikersnaam:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wiki-gebruikersnaam:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Forum-gebruikersid:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Uitvoerformaat:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "URL's samenstellen voor het Debian-lid"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Mijn persoonlijke links"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portfolio van een Debian-lid"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Gebruik"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Er is een fout opgetreden tijdens het samenstellen van de url:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Opnieuw beginnen"

View file

@ -1,380 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2020-10-27 06:59+0000\n"
"Last-Translator: Jan Dittberner <jandd@debian.org>\n"
"Language: pl\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/debian-member-"
"portfolio-service/translations/pl/>\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && "
"(n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Przegląd"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Bugi"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr ""
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr ""
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr ""
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Pliki"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,400 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2021-07-03 11:15+0200\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language: pt\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/pt/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Visão geral dos Pacote dos Membros do Debian\n"
"... exibindo todos os endereços de email"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Bugs recebidos\n"
"(nota: co-mantenedores não listados, veja <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Bugs reportados"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "Tags de utilizador"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "correspondente para bugs"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Histórico gráfico de bugs abertos há um ano"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Construção"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "relatórios lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Ficheiros"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Infomações DB via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Informações DB via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Miscelânea"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "ligações"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Site do Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Chave pública OpenPGP via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Chave pública OpenPGP via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informação sobre Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"informações de banco de dados"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informações de Grupos associados"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Endereços de email"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Fingerprint OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Entrada ausente: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Serviço de Portfolio dos Membros do Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Este serviço tem sido inspirado por Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">Página DDPortfolio na Debian"
" Wiki</a>. Pode criar um conjunto de ligações customizados apontando para"
" informações, ou de membro Debian, ou de mantenedor de pacotes a respeito"
" de Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Sofware Livre"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"O serviço está disponível sob os termos da <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Licença Pública Geral "
"Affero GNU</a> conforme publicado pela the Free Software Foundation, "
"tanto na versão 3 da licença, como (a seu critério) qualquer versão mais "
"recente. Pode <a href=\"%(browseurl)s\" title=\"Navegar na URL do "
"repositório Gitweb\">visualizar o código fonte</a> ou cloná-lo<a "
"href=\"%(cloneurl)s\" title=\"URL de clonagem do git\">%(cloneurl)s</a> "
"usando <a href=\"http://git-scm.com/\">git</a>. Se quiser traduzir este "
"serviço para o seu idioma pode contribuir em <a href=\"%(weblateurl)s\" "
"title=\"Serviço de Portfolio dos Membros do Debian no "
"Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Endereço de email:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Mostrar todos os campos"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nome:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Fingerprint OpenPGP"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nome de utilizador Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Endereço de email não Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "nome de utilizador Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nome de utilizador Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Id de utilizador do fórum:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "URLs de Portfolio dos Membros Debian em Construção"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "As suas ligações pessoais"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Modo de uso"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Erro durante a criação da URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Reiniciar"

View file

@ -1,400 +0,0 @@
# Portuguese (Brazil) translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2012 Daniel Manzano
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Daniel Manzano <dzm747@hotmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-10-10 18:04+0000\n"
"Last-Translator: Ricardo Berlim Fonseca <eblues@disroot.org>\n"
"Language: pt_BR\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects"
"/debian-member-portfolio-service/translations/pt_BR/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Visão geral dos Pacote dos Membros do Debian\n"
"... exibindo todos os endereços de email"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Bugs recebidos\n"
"(nota: co-mantenedores não listados, veja <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Bugs reportados"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "Tags de usuário"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "correspondente para bugs"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Histórico gráfico de bugs abertos há um ano"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Construção"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "relatórios lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Zelador Debian"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Arquivos"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "idosos"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Infomações DB via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Informações DB via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Miscelânea"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "links"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Site do Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Chave pública OpenPGP via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Chave pública OpenPGP via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informação sobre Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"informações de banco de dados"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informações de Grupos associados"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Endereços de email"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Fingerprint OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Entrada ausente: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Serviço de Portfolio dos Membros do Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Este serviço tem sido inspirado por Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">Página DDPortfolio na Debian"
" Wiki</a>. Você pode criar um conjunto de links customizados apontando "
"para informações, ou de membro Debian, ou de mantenedor de pacotes a "
"respeito de Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Sofware Livre"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"O serviço está disponível sob os termos da <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Licença Pública Geral "
"Affero GNU</a> conforme publicado pela the Free Software Foundation, "
"tanto na versão 3 da licença, como (a seu critério) qualquer versão mais "
"recente. Você pode <a href=\"%(browseurl)s\" title=\"Navegar na URL do "
"repositório Gitweb\">visualizar o código fonte</a> ou cloná-lo<a "
"href=\"%(cloneurl)s\" title=\"URL de clonagem do git\">%(cloneurl)s</a> "
"usando <a href=\"http://git-scm.com/\">git</a>. Se você quiser traduzir "
"este serviço para o seu idioma você pode contribuir em <a "
"href=\"%(weblateurl)s\" title=\"Serviço de Portfolio dos Membros do "
"Debian no Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Endereço de email:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Mostrar todos os campos"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nome:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Fingerprint OpenPGP:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nome de usuário Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Endereço de email não Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "nome de utilizador Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nome de usuário Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Id de usuário do fórum:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "URLs de Portfolio dos Membros Debian em Construção"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Os seus links pessoais"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Modo de uso"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Erro durante a criação da URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Reiniciar"

View file

@ -1,400 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-09-21 16:19+0000\n"
"Last-Translator: Manuela Silva <mmsrs@sky.com>\n"
"Language: pt_PT\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects"
"/debian-member-portfolio-service/translations/pt_PT/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Visão geral dos Pacote dos Membros do Debian\n"
"... exibindo todos os endereços de correio eletrónico"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Erros"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Erros recebidos\n"
"(nota: co-administradores não listados, consulte <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Erros reportados"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "Etiquetas de utilizador"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "correspondente para erros"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "Gráfico do histórico de erros abertos há um ano"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Criação"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Relatórios lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Zelador Debian"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Ficheiros"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "pessoasidosas"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Informação DB via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Informação DB via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Diversos"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (nome de utilizador)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "hiperligações"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Site da Web Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Chave pública OpenPGP via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Chave pública OpenPGP via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Informação de contribuição"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informação sobre Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"informação da base de dados"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informação dos membros do grupo"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Endereços de correio eletrónico"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Fingerprint OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Entrada ausente: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Serviço de Portfolio dos Membros do Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Este serviço tem sido inspirado por Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">Página DDPortfolio na Debian"
" Wiki</a>. Pode criar um conjunto de ligações customizados apontando para"
" informações, ou de membro Debian, ou de mantenedor de pacotes a respeito"
" de Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Sofware Livre"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"O serviço está disponível sob os termos da <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Licença Pública Geral "
"Affero GNU</a> conforme publicado pela the Free Software Foundation, "
"tanto na versão 3 da licença, como (a seu critério) qualquer versão mais "
"recente. Pode <a href=\"%(browseurl)s\" title=\"Navegar na URL do "
"repositório Gitweb\">visualizar o código fonte</a> ou cloná-lo<a "
"href=\"%(cloneurl)s\" title=\"URL de clonagem do git\">%(cloneurl)s</a> "
"usando <a href=\"http://git-scm.com/\">git</a>. Se quiser traduzir este "
"serviço para o seu idioma pode contribuir em <a href=\"%(weblateurl)s\" "
"title=\"Serviço de Portfolio dos Membros do Debian no "
"Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Endereço de email:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Mostrar todos os campos"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nome:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Fingerprint OpenPGP"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nome de utilizador Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Endereço de email não Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "nome de utilizador Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Nome de utilizador Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Id de utilizador do fórum:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "URLs de Portfolio dos Membros Debian em Construção"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "As suas ligações pessoais"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portfolio de Membro Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Modo de uso"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Erro durante a criação da URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Reiniciar"

View file

@ -1,401 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.6.4\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2023-03-30 22:37+0000\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language: ro\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/ro/>\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 "
"< 20)) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Prezentare generală"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Prezentare generală a pachetului membrului Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Prezentare generală a pachetului membrului Debian\n"
"... se afișează toate adresele de poștă electronică"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Erori"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"Erori \n"
"(notă: co-responsabilii nu sunt listați, consultați <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "Erori raportate"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "etichete puse de utilizator"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "corespondent (persoana de contact) pentru erori"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "grafic al istoricului anual de rapoarte de erori deschise"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Construire"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "build d.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Asigurarea calității"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "tabloul de bord al responsabilului"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "rapoarte lintian"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "rapoarte complete lintian (adică, inclusiv mesaje la nivel de „info”)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "părticele (piuparts)"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Recepționist Debian"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Liste de corespondență"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "liste d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "liste a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Fișiere"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "persoane.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "persoane în vârstă"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Membru"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Informații din BD via Finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Informații din BD via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Diverse"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags (etichete-debian)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (nume)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (nume de utilizator)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "legături"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Situl web Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Căutare în Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Cheie publică OpenPGP via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Cheie publică OpenPGP via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "Participare NM, AM"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Informații privind contribuția"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Informații despre Repology"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informații accesibile prin ssh (pentru membrii Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "domeniile debian.net deținute"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Informații ale bazei de date <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Informații despre apartenența la grup"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Adresa de e-mail"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Nume"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Amprentă digitală OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Numele de utilizator Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Adresa de e-mail non Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Numele de utilizator Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Lipsește intrarea: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Serviciul de portofoliu al membrilor Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Logo Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Acest serviciu a fost inspirat de pagina <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio</a> a lui "
"Stefano Zacchiroli din Debian Wiki. Puteți crea un set de trimiteri "
"personalizate care să conducă la informații despre Debian ale unui membru"
" Debian sau ale responsabilului pachetului."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Software liber"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Serviciul este disponibil în conformitate cu termenii <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Licența publică generală "
"GNU Affero</a> publicată de Free Software Foundation, fie versiunea 3 a "
"licenței, fie (la alegerea dvs.) orice versiune ulterioară. Puteți <a "
"href=\"%(browseurl)s\" title=\"Navigați la adresa URL a depozitului "
"Gitweb\">să răsfoiți codul sursă</a> sau să-l clonați din <a "
"href=\"%(cloneurl)s\" title=\"git clone URL\">%(cloneurl)s</a> folosind "
"<a href=\"https://git-scm.com/\">git</a>. Dacă doriți să traduceți acest "
"serviciu în limba dvs., puteți contribui la <a href=\"%(weblateurl)s\" "
"title=\"Serviciul de portofoliu al membrilor Debian la "
"Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Drepturi de autor © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Introduceți informațiile dvs. personale"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Portofoliu de Membru Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Adresa de e-mail:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Afișează toate câmpurile formularului"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Nume:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Amprentă digitală OpenPGP:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Nume utilizator Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Adresa de e-mail non Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Numele de utilizator Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Numele de utilizator Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "ID utilizator forum:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Format de ieșire:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Creează adresele URL pentru portofoliul de membru al Debian"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Legăturile dvs. personale"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Portofoliu de membru al Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Utilizare"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "adresa URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Eroare în timpul creării adresei URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Reîncepe"

View file

@ -1,401 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-01-11 15:52+0000\n"
"Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n"
"Language: ru\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/ru/>\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Обзор"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Обзор пакетов участников Debian"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Обзор пакетов участников Debian\n"
"... отображение всех адресов электронной почты"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Ошибки"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"полученные ошибки\n"
"(примечание: со-сопровождающие не указаны, см. <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "сообщения об ошибках"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "теги пользователей"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "корреспондент по вопросам ошибок"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "график истории открытых ошибок за один год"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Сборка"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "иглу"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Гарантия качества"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "панель мониторинга"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Lintian отчеты"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "полные отчеты Lintian (т. е. включая сообщения уровня \"информация\")"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian Janitor"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Списки рассылки"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Файлы"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Членство"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "Информация о ДБ по отпечатку"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "Информация о ДБ по HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Форум"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Разное"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Планета Debian (имя)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Планета Debian (имя пользователя)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "ссылки"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Сайт Debian"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Поиск Debian"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "Открытый ключ OpenPGP через отпечаток"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "Открытый ключ OpenPGP через HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM, AM участие"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Информация о вкладе"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Информация о репологии"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Информация доступна по ssh (для членов Debian)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "собственные домены debian.net"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"Информация из базы данных <a "
"href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a>"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Информация о членстве в группе"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "Адрес электронной почты"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Имя"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "Отпечаток OpenPGP"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Имя пользователя Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Электронный адрес, отличный от Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Имя пользователя Salsa"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Пропущенный ввод: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Служба портфолио участников Debian"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Логотип Debian"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Этот сервис был вдохновлен страницей Стефано Заккироли <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio в Debian "
"Wiki</a>. Вы можете создать набор настраиваемых ссылок, ведущих к "
"информации участника Debian или сопровождающего пакета относительно "
"Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - Свободное программное обеспечение"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Служба доступна на условиях <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">Стандартной общественной "
"лицензии GNU</a> опубликованной Фондом свободного программного "
"обеспечения, либо 3 версии Лицензии, либо (по вашему выбору) любой более "
"поздней версии. Вы можете <a href=\"%(browseurl)s\" title=\"Gitweb "
"repository browser URL\">просмотреть исходный код</a> или клонировать его"
" из <a href=\"%(cloneurl)s\" title=\"git clone URL\">%(cloneurl)s</a> "
"используя <a href=\"https://git-scm.com/\">git</a>. Если вы хотите "
"перевести эту услугу на свой язык, вы можете внести свой вклад по ссылке "
"<a href=\"%(weblateurl)s\" title=\"Служба портфолио участников Debian в "
"Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Введите вашу личную информацию"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Портфолио участников Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "Адрес электронной почты:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Показать все поля формы"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Имя:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "Отпечаток OpenPGP"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Имя пользователя Debian:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Электронный адрес, отличный от Debian:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Имя пользователя Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Имя пользователя Wiki:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "ID пользователя форума:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Формат вывода:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Создание URL-адресов портфолио участников Debian"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Ваши личные ссылки"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Портфолио участников Debian"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Использование"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Ошибка при создании URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Перезапустить"

View file

@ -1,398 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2023-02-01 11:00+0000\n"
"Last-Translator: tygyh <jonis9898@hotmail.com>\n"
"Language: sv\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/debian-"
"member-portfolio-service/translations/sv/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "Översikt"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Debian-medlemspaketets översikt"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian-medlemspaketets översikt\n"
"... visar alla e-postadresser"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "Buggar"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"buggar mottagna\n"
"(Obs: medansvariga som inte finns listade, se <a "
"href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "buggar rapporterade"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "användartaggar"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "korrespondent för buggar"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "ett års öppen bugghistorik diagram"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "Bygge"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "bygged.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "Kvalitetssäkring"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "instrumentpanel för underhållare"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "lintian rapporter"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "fullständiga lintianrapporter (dvs. inklusive \"info\" -nivåmeddelanden)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian Vaktmästare"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "Sändlistor"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "Filer"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "Medlemskap"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "DB-information via finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "DB-information via HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "Diverse"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (namn)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (användarnamn)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "länkar"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian webbplats"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian sökning"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "OpenPGP offentlig nyckel via finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "OpenPGP offentlig nyckel via HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM, AM deltagande"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "Information om bidrag"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Information om repologi"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Information som kan nås via SSH (för Debianmedlemmar)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "ägda debian.net domäner"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"databasinformation"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "Information om gruppmedlemskap"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "E-postadress"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "Namn"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP-fingeravtryck"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian användarnamn"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "Icke Debian e-postadress"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsa användarnamn"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "Saknad inmatning: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Debian medlemsportföljtjänst"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debian logotyp"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"Den här tjänsten har inspirerats av Stefano Zacchirolis <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio-sida i Debian "
"Wiki</a>. Du kan skapa en uppsättning anpassade länkar som leder till "
"information om en Debian-medlem eller paketunderhållare om Debian."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - fri programvara"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"Tjänsten är tillgänglig under villkoren i <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> som publiceras av Free Software Foundation, antingen version"
" 3 i licensen, eller (efter eget val) någon senare version. Du kan <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">bläddra i "
"källkoden</a> eller klona den från <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> med <a href=\"https://git-"
"scm.com/\">git</a>. Om du vill översätta den här tjänsten till ditt språk"
" kan du bidra till <a href=\"%(weblateurl)s\" title=\"Debian Member "
"Portfolio Service at Weblate\">Weblate</a>."
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "Ange din personliga information"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Debian medlemsportfölj"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "E-postadress:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Visa alla formulärfält"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Namn:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "OpenPGP-fingeravtryck:"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debian användarnamn:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "Icke Debian e-postadress:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsa användarnamn:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wiki användarnamn:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "Forum användar-id:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "Utdataformat:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "Bygg webbadresser till Debian medlemsportfölj"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Dina personliga länkar"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Debian medlemsportfölj"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "Användning"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "Fel under skapandet av URL:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Starta om"

View file

@ -1,391 +0,0 @@
# German translations for the Debian Member Portfolio Service.
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2022-11-26 21:48+0000\n"
"Last-Translator: billchenchina <billchenchina2001@gmail.com>\n"
"Language: zh_CN\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects"
"/debian-member-portfolio-service/translations/zh_Hans/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "概述"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Debian 成员的软件包概览"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian 成员的软件包概览\n"
"... 显示所有邮件地址"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "缺陷"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
"bugs 接收\n"
"(注意: 合作维护者未列入, 详见 <a href=\"https://bugs.debian.org/cgi-"
"bin/bugreport.cgi?bug=430986\">#430986</a>)"
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "bugs 报告"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "用户标签"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">需要支持的和未来应有的包WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr "bug的通信者"
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr "一年处理Bug历史图表"
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "构建"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "冰屋(igloo)"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "质量保证"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "维护者面板"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "Lintian报告"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "全部Lintian报告(即包括\"info\"级信息)"
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr "Debian 守门人"
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "邮件列表"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "文件"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr "老人"
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr "成员关系"
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr "DB信息,通过finger"
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr "DB信息,通过HTTP"
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr "论坛"
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr "杂项"
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr "包标签"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr "Planet Debian (名字)"
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr "Planet Debian (用户名)"
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr "链接"
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr "Debian网站"
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr "Debian搜索"
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr "OpenPGP公钥,通过finger"
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr "OpenPGP公钥,通过HTTP"
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr "NM, AM 参加"
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr "贡献信息"
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr "Repology信息"
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr "信息可获取,通过ssh(DM专用)"
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr "拥有 debian.net 领域"
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr "<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> 数据库信息"
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr "群组会员信息"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr "邮件地址"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr "姓名"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr "OpenPGP指纹"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr "Debian用户名"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr "非Debian邮件地址"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr "Salsa用户名"
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr "缺少输入: %s"
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr "Debian 成员职责目录Member Portfolio服务"
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr "Debian Logo"
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
"这个服务由 Stefano Zacchiroli的 <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio 的 Debian "
"Wiki页面</a> 得到灵感. 你可以创建一个指向 Debian Member 的或包维护者的关于Debian的信息的定制链接集合."
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr "AGPL - 自由软件"
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
"这个服务在由自由软件基金会FSF发布的 <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> 第三版或(可选)更高版本协议下可用,可以点击 <a href=\"%(browseurl)s\" "
"title=\"Gitweb repository browser URL\">查看源代码</a>,或从 <a "
"href=\"%(cloneurl)s\" title=\"git clone URL\">%(cloneurl)s</a> 使用 <a "
"href=\"http://git-scm.com/\">git</a> 来克隆。如果想将这个服务翻译为你的语言,可以在这里投稿 <a "
"href=\"%(weblateurl)s\" title=\"Debian Member Portfolio Service at "
"Weblate\">Weblate</a>。"
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr "Copyright © 2009-2023 Jan Dittberner"
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr "输入你的个人信息"
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr "Debian Member Portfolio"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "邮件地址:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "显示所有字段"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "姓名:"
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr "OpenPGP指纹"
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr "Debian用户名:"
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr "非Debian邮件地址:"
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr "Salsa用户名:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr "Wiki用户名:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr "论坛用户id:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr "输出格式:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr "构建Debian Member Prortfolio链接"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "你的个人链接"
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr "Debian 成员职责目录"
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr "使用"
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr "URL"
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr "在 URL 创建过程中的错误:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "重启"

View file

@ -1,381 +0,0 @@
# German translations for the Debian Member Portfolio Service.
#
# Copyright (C) 2009-2014 Jan Dittberner
# This file is distributed under the same license as the Debian Member
# Portfolio Service project.
# Translators:
# Jan Dittberner <jan@dittberner.info>, 2009-2014
msgid ""
msgstr ""
"Project-Id-Version: Debian Member Portfolio Service 0.3.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2023-06-03 18:22+0200\n"
"PO-Revision-Date: 2019-01-20 15:12+0000\n"
"Last-Translator: Louies <louies0623@gmail.com>\n"
"Language: zh_Hant\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects"
"/debian-member-portfolio-service/translations/zh_Hant/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:42
msgid "Overview"
msgstr "總覽"
#: debianmemberportfolio/views.py:43
msgid "Debian Member's Package Overview"
msgstr "Debian 會員的套餐總覽"
#: debianmemberportfolio/views.py:44
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian 會員套件概述\n"
"...顯示所有電子郵件地址"
#: debianmemberportfolio/views.py:50
msgid "Bugs"
msgstr "錯誤"
#: debianmemberportfolio/views.py:51
msgid ""
"bugs received\n"
"(note: co-maintainers not listed, see <a href=\"https://bugs.debian.org"
"/cgi-bin/bugreport.cgi?bug=430986\">#430986</a>)"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "bugs reported"
msgstr "錯誤回報"
#: debianmemberportfolio/views.py:58
msgid "user tags"
msgstr "用戶標籤"
#: debianmemberportfolio/views.py:59
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:60
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:64
msgid "Build"
msgstr "建構"
#: debianmemberportfolio/views.py:65
msgid "buildd.d.o"
msgstr "建構公司"
#: debianmemberportfolio/views.py:66
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:69
msgid "Quality Assurance"
msgstr "品質保證"
#: debianmemberportfolio/views.py:70
msgid "maintainer dashboard"
msgstr "維護人員儀錶板"
#: debianmemberportfolio/views.py:71
msgid "lintian reports"
msgstr "lintian 報導"
#: debianmemberportfolio/views.py:72
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "Debian Janitor"
msgstr ""
#: debianmemberportfolio/views.py:80
msgid "Mailing Lists"
msgstr "郵遞清單"
#: debianmemberportfolio/views.py:81
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:85
msgid "Files"
msgstr "檔案"
#: debianmemberportfolio/views.py:86
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:93
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:96
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "OpenPGP public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "OpenPGP public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:110
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:115
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> "
"database information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "OpenPGP fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:128
#: debianmemberportfolio/model/urlbuilder.py:138
#, python-format
msgid "Missing input: %s"
msgstr ""
#: debianmemberportfolio/templates/base.html:24
#: debianmemberportfolio/templates/base.html:31
msgid "Debian Member Portfolio Service"
msgstr ""
#: debianmemberportfolio/templates/base.html:30
msgid "Debian Logo"
msgstr ""
#: debianmemberportfolio/templates/base.html:32
msgid ""
"This service has been inspired by Stefano Zacchiroli's <a "
"href=\"https://wiki.debian.org/DDPortfolio\">DDPortfolio page in the "
"Debian Wiki</a>. You can create a set of customized links leading to a "
"Debian Member's or package maintainer's information regarding Debian."
msgstr ""
#: debianmemberportfolio/templates/base.html:39
msgid "AGPL - Free Software"
msgstr ""
#: debianmemberportfolio/templates/base.html:40
#, python-format
msgid ""
"The service is available under the terms of the <a "
"href=\"https://www.gnu.org/licenses/agpl.html\">GNU Affero General Public"
" License</a> as published by the Free Software Foundation, either version"
" 3 of the License, or (at your option) any later version. You can <a "
"href=\"%(browseurl)s\" title=\"Gitweb repository browser URL\">browse the"
" source code</a> or clone it from <a href=\"%(cloneurl)s\" title=\"git "
"clone URL\">%(cloneurl)s</a> using <a href=\"https://git-"
"scm.com/\">git</a>. If you want to translate this service to your "
"language you can contribute at <a href=\"%(weblateurl)s\" title=\"Debian "
"Member Portfolio Service at Weblate\">Weblate</a>."
msgstr ""
#: debianmemberportfolio/templates/base.html:41
msgid "Copyright © 2009-2023 Jan Dittberner"
msgstr ""
#: debianmemberportfolio/templates/showform.html:22
msgid "Enter your personal information"
msgstr ""
#: debianmemberportfolio/templates/showform.html:29
msgid "Debian Member Portfolio"
msgstr ""
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr ""
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:50
msgid "OpenPGP fingerprint:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:57
msgid "Debian user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:64
msgid "Non Debian email address:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:71
msgid "Salsa user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:78
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Build Debian Member Portfolio URLs"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:25
msgid "Debian Member Porfolio"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "Usage"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:28
msgid "URL"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:38
msgid "Error during URL creation:"
msgstr ""
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr ""
#~ msgid "Copyright © 2009-2022 Jan Dittberner"
#~ msgstr ""

View file

@ -1,223 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service views
#
# Copyright © 2015-2023 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
import json
import logging
from config import LANGUAGES
from debianmemberportfolio import app, babel
from flask import abort, g, make_response, render_template, request
# noinspection PyPep8Naming
from flask_babel import lazy_gettext as N_
from .forms import DeveloperData, DeveloperDataRequest
from .model import dddatabuilder
from .model.urlbuilder import build_urls
log = logging.getLogger(__name__)
#: This dictionary defines groups of labeled portfolio items.
_LABELS = {
"overview": {
"label": N_("Overview"),
"ddpo": N_("Debian Member's Package Overview"),
"alladdresses": N_(
"""Debian Member's Package Overview
... showing all email addresses"""
),
},
"bugs": {
"label": N_("Bugs"),
"received": N_(
"""bugs received
(note: co-maintainers not listed, see \
<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?\
bug=430986">#430986</a>)"""
),
"reported": N_("bugs reported"),
"usertags": N_("user tags"),
"wnpp": N_('<a href="https://wiki.debian.org/WNPP">WNPP</a>'),
"correspondent": N_("correspondent for bugs"),
"graph": N_("one year open bug history graph"),
},
"build": {
"label": N_("Build"),
"buildd": N_("buildd.d.o"),
"igloo": N_("igloo"),
},
"qa": {
"label": N_("Quality Assurance"),
"dmd": N_("maintainer dashboard"),
"lintian": N_("lintian reports"),
"lintianfull": N_(
'full lintian reports (i.e. including \
"info"-level messages)'
),
"piuparts": N_("piuparts"),
"janitor": N_("Debian Janitor"),
},
"lists": {
"label": N_("Mailing Lists"),
"dolists": N_("lists.d.o"),
"adolists": N_("lists.a.d.o"),
},
"files": {
"label": N_("Files"),
"people": N_("people.d.o"),
"oldpeople": N_("oldpeople"),
},
"membership": {
"label": N_("Membership"),
"nm": N_("NM"),
"dbfinger": N_("DB information via finger"),
"db": N_("DB information via HTTP"),
"salsa": N_("Salsa"),
"wiki": N_("Wiki"),
"forum": N_("Forum"),
},
"miscellaneous": {
"label": N_("Miscellaneous"),
"debtags": N_("debtags"),
"planetname": N_("Planet Debian (name)"),
"planetuser": N_("Planet Debian (username)"),
"links": N_("links"),
"website": N_("Debian website"),
"search": N_("Debian search"),
"gpgfinger": N_("OpenPGP public key via finger"),
"gpgweb": N_("OpenPGP public key via HTTP"),
"nm": N_("NM, AM participation"),
"contrib": N_("Contribution information"),
"repology": N_("Repology information"),
},
"ssh": {
"label": N_("Information reachable via ssh (for Debian Members)"),
"owndndoms": N_("owned debian.net domains"),
"miainfo": N_(
'<a href="https://wiki.debian.org/qa.debian.org/'
'MIATeam">MIA</a> database information'
),
"groupinfo": N_("Group membership information"),
},
}
#: list of field name tuples for Debian Maintainers
DM_TUPLES = (("name", "name"), ("openpgpfp", "openpgpfp"), ("nonddemail", "email"))
#: list of field name tuples for Debian Developers
DD_TUPLES = (("username", "username"), ("salsausername", "username"))
def _get_label(section, url=None):
if section in _LABELS:
if url:
if url in _LABELS[section]:
return _LABELS[section][url]
elif "label" in _LABELS[section]:
return _LABELS[section]["label"]
if url:
return "%s.%s" % (section, url)
return section
@babel.localeselector
def get_locale():
return request.accept_languages.best_match(LANGUAGES.keys())
@app.before_request
def before_request():
g.locale = get_locale()
@app.route("/")
def index():
form = DeveloperData()
return render_template("showform.html", form=form)
@app.route("/result")
def urllist():
form = DeveloperData(request.values)
if form.validate():
fields = dddatabuilder.build_data(form.data["email"])
form_data = form.data.copy()
if fields["type"] in (dddatabuilder.TYPE_DD, dddatabuilder.TYPE_DM):
for dmtuple in DM_TUPLES:
if not form_data[dmtuple[0]]:
form_data[dmtuple[0]] = fields[dmtuple[1]]
if fields["type"] == dddatabuilder.TYPE_DD:
for ddtuple in DD_TUPLES:
if not form_data[ddtuple[0]]:
form_data[ddtuple[0]] = fields[ddtuple[1]]
if not form_data["wikihomepage"] and form_data["name"]:
log.debug("generate wikihomepage from name")
form_data["wikihomepage"] = "".join(
[part.capitalize() for part in form_data["name"].split()]
)
data = build_urls(form_data)
if form_data["mode"] == "json":
response = make_response(
json.dumps(
dict(
[
("{}.{}".format(entry[1], entry[2].name), entry[3])
for entry in data
if entry[0] == "url"
]
)
)
)
response.headers["Content-Type"] = "application/json"
return response
for entry in data:
if entry[0] in ("url", "error"):
entry.append(_get_label(entry[1], entry[2].name))
elif entry[0] == "section":
entry.append(_get_label(entry[1]))
return render_template("showurls.html", urldata=data)
return render_template("showform.html", form=form)
@app.route("/htmlformhelper.js")
def formhelper_js():
response = make_response(render_template("showformscript.js"))
response.headers["Content-Type"] = "text/javascript; charset=utf-8"
return response
@app.route("/showformscripts/fetchdddata/")
def fetchdddata():
form = DeveloperDataRequest(request.values)
if form.validate():
fields = dddatabuilder.build_data(form.data["email"])
log.debug(fields)
response = make_response(json.dumps(fields))
response.headers["Content-Type"] = "application/json"
return response
abort(400, "\n".join(["%s: %s" % (key, form.errors[key]) for key in form.errors]))

72
development.ini Normal file
View file

@ -0,0 +1,72 @@
#
# ddportfolioservice - Pylons development environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
[DEFAULT]
debug = true
# Uncomment and replace with the address which should receive any error reports
#email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = paste@localhost
[server:main]
use = egg:Paste#http
host = 127.0.0.1
port = 5000
[app:main]
use = egg:ddportfolioservice
full_stack = true
static_files = true
cache_dir = %(here)s/data
beaker.session.key = ddportfolioservice
beaker.session.secret = somesecret
# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
#beaker.cache.data_dir = %(here)s/data/cache
#beaker.session.data_dir = %(here)s/data/sessions
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
#set debug = false
# Logging configuration
[loggers]
keys = root, routes, ddportfolioservice
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[logger_routes]
level = INFO
handlers =
qualname = routes.middleware
# "level = DEBUG" logs the route matched and routing variables.
[logger_ddportfolioservice]
level = DEBUG
handlers =
qualname = ddportfolioservice
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] [%(threadName)s] %(message)s
datefmt = %H:%M:%S

1
docs/.gitignore vendored
View file

@ -1 +0,0 @@
build/

190
docs/conf.py Normal file
View file

@ -0,0 +1,190 @@
# -*- coding: utf-8 -*-
#
# Debian Developer Portfolio Service documentation build configuration file, created by
# sphinx-quickstart on Tue Jan 20 22:27:21 2009.
#
# This file is execfile()d with the current directory set to its containing dir.
#
# The contents of this file are pickled, so don't put values in the namespace
# that aren't pickleable (module imports are okay, they're removed automatically).
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys, os
# If your extensions are in another directory, add it here. If the directory
# is relative to the documentation root, use os.path.abspath to make it
# absolute, like shown here.
#sys.path.append(os.path.abspath('.'))
# General configuration
# ---------------------
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['.templates']
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#source_encoding = 'utf-8'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Debian Developer Portfolio Service'
copyright = u'2009, Jan Dittberner'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '0.1'
# The full version, including alpha/beta/rc tags.
release = '0.1dev'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#today = ''
# Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y'
# List of documents that shouldn't be included in the build.
#unused_docs = []
# List of directories, relative to source directory, that shouldn't be searched
# for source files.
exclude_trees = []
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# Options for HTML output
# -----------------------
# The style sheet to use for HTML and HTML Help pages. A file of that name
# must exist either in Sphinx' static/ path, or in one of the custom paths
# given in html_static_path.
html_style = 'default.css'
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
#html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
#html_logo = None
# 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
# pixels large.
#html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['.static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
#html_additional_pages = {}
# If false, no module index is generated.
html_use_modindex = False
# If false, no index is generated.
#html_use_index = True
# If true, the index is split into individual pages for each letter.
#html_split_index = False
# If true, the reST sources are included in the HTML build as _sources/<name>.
#html_copy_source = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
#html_use_opensearch = ''
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = ''
# Output file base name for HTML help builder.
htmlhelp_basename = 'DebianDeveloperPortfolioServicedoc'
# Options for LaTeX output
# ------------------------
# The paper size ('letter' or 'a4').
#latex_paper_size = 'letter'
# The font size ('10pt', '11pt' or '12pt').
#latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, document class [howto/manual]).
latex_documents = [
('index', 'DebianDeveloperPortfolioService.tex', ur'Debian Developer Portfolio Service Documentation',
ur'Jan Dittberner', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
#latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
#latex_use_parts = False
# Additional stuff for the LaTeX preamble.
#latex_preamble = ''
# Documents to append as an appendix to all manuals.
#latex_appendices = []
# If false, no module index is generated.
#latex_use_modindex = True

View file

@ -1,60 +0,0 @@
alabaster==0.7.13 ; python_version >= "3.8" and python_version < "4.0"
babel==2.12.1 ; python_version >= "3.8" and python_version < "4.0"
cachecontrol[filecache]==0.12.11 ; python_version >= "3.8" and python_version < "4.0"
cachy==0.3.0 ; python_version >= "3.8" and python_version < "4.0"
certifi==2023.5.7 ; python_version >= "3.8" and python_version < "4.0"
cffi==1.15.1 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
charset-normalizer==3.1.0 ; python_version >= "3.8" and python_version < "4.0"
cleo==1.0.0a5 ; python_version >= "3.8" and python_version < "4.0"
colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32"
crashtest==0.3.1 ; python_version >= "3.8" and python_version < "4.0"
cryptography==41.0.1 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
distlib==0.3.6 ; python_version >= "3.8" and python_version < "4.0"
docutils==0.17.1 ; python_version >= "3.8" and python_version < "4.0"
entrypoints==0.3 ; python_version >= "3.8" and python_version < "4.0"
filelock==3.12.0 ; python_version >= "3.8" and python_version < "4.0"
html5lib==1.1 ; python_version >= "3.8" and python_version < "4.0"
idna==3.4 ; python_version >= "3.8" and python_version < "4.0"
imagesize==1.4.1 ; python_version >= "3.8" and python_version < "4.0"
importlib-metadata==6.6.0 ; python_version >= "3.8" and python_version < "3.12"
importlib-resources==5.12.0 ; python_version >= "3.8" and python_version < "3.9"
jaraco-classes==3.2.3 ; python_version >= "3.8" and python_version < "4.0"
jeepney==0.8.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
jinja2==3.1.2 ; python_version >= "3.8" and python_version < "4.0"
keyring==23.13.1 ; python_version >= "3.8" and python_version < "4.0"
lockfile==0.12.2 ; python_version >= "3.8" and python_version < "4.0"
markupsafe==2.1.3 ; python_version >= "3.8" and python_version < "4.0"
more-itertools==9.1.0 ; python_version >= "3.8" and python_version < "4.0"
msgpack==1.0.5 ; python_version >= "3.8" and python_version < "4.0"
packaging==20.9 ; python_version >= "3.8" and python_version < "4.0"
pexpect==4.8.0 ; python_version >= "3.8" and python_version < "4.0"
pkginfo==1.9.6 ; python_version >= "3.8" and python_version < "4.0"
platformdirs==3.5.1 ; python_version >= "3.8" and python_version < "4.0"
poetry-babel-plugin==0.1.0 ; python_version >= "3.8" and python_version < "4.0"
poetry-core==1.6.1 ; python_version >= "3.8" and python_version < "4.0"
poetry==1.2.0b1 ; python_version >= "3.8" and python_version < "4.0"
ptyprocess==0.7.0 ; python_version >= "3.8" and python_version < "4.0"
pycparser==2.21 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
pygments==2.15.1 ; python_version >= "3.8" and python_version < "4.0"
pylev==1.4.0 ; python_version >= "3.8" and python_version < "4.0"
pyparsing==3.0.9 ; python_version >= "3.8" and python_version < "4.0"
pytz==2023.3 ; python_version >= "3.8" and python_version < "3.9"
pywin32-ctypes==0.2.0 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32"
requests-toolbelt==0.9.1 ; python_version >= "3.8" and python_version < "4.0"
requests==2.31.0 ; python_version >= "3.8" and python_version < "4.0"
secretstorage==3.3.3 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "linux"
shellingham==1.5.0.post1 ; python_version >= "3.8" and python_version < "4.0"
six==1.16.0 ; python_version >= "3.8" and python_version < "4.0"
snowballstemmer==2.2.0 ; python_version >= "3.8" and python_version < "4.0"
sphinx==5.1.1 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_version < "4.0"
sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_version < "4.0"
tomlkit==0.11.8 ; python_version >= "3.8" and python_version < "4.0"
urllib3==1.26.16 ; python_version >= "3.8" and python_version < "4.0"
virtualenv==20.23.0 ; python_version >= "3.8" and python_version < "4.0"
webencodings==0.5.1 ; python_version >= "3.8" and python_version < "4.0"
zipp==3.15.0 ; python_version >= "3.8" and python_version < "3.12"

18
docs/index.rst Normal file
View file

@ -0,0 +1,18 @@
.. Debian Developer Portfolio Service documentation master file, created by sphinx-quickstart on Tue Jan 20 22:27:21 2009.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to Debian Developer Portfolio Service's documentation!
==============================================================
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`

View file

@ -1,117 +0,0 @@
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service documentation build configuration file,
# created by sphinx-quickstart on Tue Jan 20 22:27:21 2009.
#
# This file is execfile()d with the current directory set to its containing
# dir.
#
# The contents of this file are pickled, so don't put values in the namespace
# that aren't pickleable (module imports are okay, they're removed
# automatically).
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
# If your extensions are in another directory, add it here. If the directory
# is relative to the documentation root, use os.path.abspath to make it
# absolute, like shown here.
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")))
# General configuration
# ---------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ["sphinx.ext.autodoc", "sphinx.ext.viewcode"]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# The encoding of source files.
# source_encoding = 'utf-8'
# General information about the project.
project = "Debian Member Portfolio Service"
copyright = "2009-2023, Jan Dittberner"
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = "0.8.0"
# The full version, including alpha/beta/rc tags.
release = version
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
language = "en"
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"
# -----------------------
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
# If false, no module index is generated.
html_use_modindex = False
# If false, no index is generated.
# html_use_index = True
html_theme = "alabaster"
# Output file base name for HTML help builder.
htmlhelp_basename = "DebianMemberPortfolioServicedoc"
# Options for LaTeX output
# ------------------------
# The paper size ('letter' or 'a4').
# latex_paper_size = 'letter'
# The font size ('10pt', '11pt' or '12pt').
# latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, document class
# [howto/manual]).
# latex_documents = [
# (
# "index",
# "DebianMemberPortfolioService.tex",
# "Debian Member Portfolio Service Documentation",
# "Jan Dittberner",
# "manual",
# ),
# ]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
# latex_use_parts = False
# Additional stuff for the LaTeX preamble.
# latex_preamble = ''
# Documents to append as an appendix to all manuals.
# latex_appendices = []
# If false, no module index is generated.
# latex_use_modindex = True
master_doc = "index"

View file

@ -1,45 +0,0 @@
Credits
=======
The Debian Member Portfolio Service contains contributions from several people.
Code
----
* Jan Dittberner <jandd at debian dot org>
* Paul Wise <pabs at debian dot org>
* Olivier Berger <olivier.berger at telecom-sudparis dot eu>
* Juri Grabowski <git-commit at jugra dot de>
Translations
------------
* Adolfo Jayme Barrientos (Spanish, French, Portuguese (Brazil))
* Allan Nordhøy (Norwegian Bokmål)
* Boyuan Yang (Chinese (simplified))
* ButterflyOfFire (French, Portuguese (Brazil))
* Daniel Manzano (Portugues (Brazil))
* Frans Spiesschaert (Dutch)
* Heimen Stoffels (Dutch)
* Izharul Haq (Indonesian)
* Jan Dittberner (German, English)
* Manuela Silva (Portugues (Portugal))
* Mattias Münster (Swedish)
* Michal Biesiada (Polish)
* Nikita Epifanov (Russian)
* Olivier Humbert (French)
* Petter Reinholdtsen (Norwegian Bokmål)
* Prachi Joshi (Marathi)
* Reza Almanda (Indonesian)
* Shuji Sado (Japanese)
* Stéphane Aulery (French)
* Tao Wang (Chinese (simplified))
* Thanos Siourdakis (Greek)
* Tiago Naufragado (Portugues (Brazil))
* Wellington Terumi Uemura (Portugues (Brazil))
* chimez (Chinese (China))
* ssantos (Portugues (Portugal))
If you think your name is missing please tell me (Jan Dittberner) about your
contribution and I'll add you.

View file

@ -1,158 +0,0 @@
Development of Debian Member Portfolio Service
==============================================
The Debian Member Portfolio Service is implemented in `Python 3
<https://www.python.org>`_ using the `Flask <http://flask.pocoo.org/>`_ web
application framework.
The following sections describe how to setup a local development environment
for the Debian Member Portfolio Service.
All instructions assume that you work on a Debian system. You should use Python
3 for development.
Setup of a local development
----------------------------
To start working on the source code you need to have `git`_ installed::
sudo aptitude install git
.. _git: http://www.git-scm.com/
The canonical git repository for the Debian Member Portfolio Service is
available at https://git.dittberner.info/jan/debianmemberportfolio
To get a clone of the source code you change to a directory of your choice and
invoke git clone::
cd ~/src
git clone https://git.dittberner.info/jan/debianmemberportfolio.git
We use `Poetry <https://python-poetry.org/>`_ for dependency management. Run::
poetry install
to install all required dependencies in a Poetry managed virtual environment.
Debian Member Portfolio Service needs the JQuery JavaScript library to function
properly. The JQuery library is not included in the git clone and must be
copied into the subdirectory
:file:`debianmemberportfolio/static/javascript/jquery`. On Debian systems you
can install the package libjs-jquery and place a symlink to the directory
:file:`/usr/share/javascript` into :file:`debianmemberportfolio/static`: ::
sudo aptitude install libjs-jquery
ln -s /usr/share/javascript debianmemberportfolio/static
Prepare for first startup
~~~~~~~~~~~~~~~~~~~~~~~~~
The Debian Member Portfolio Service uses data from the Debian keyring to get
information regarding OpenPGP keys and names related to email addresses. Before you
can run the service you need to fetch a copy of the keyring and prepare it for
use by the code.
.. note::
You need rsync and gnupg for these tasks::
sudo aptitude install rsync gnupg
When you have both installed you can run::
./synckeyrings.sh
poetry run python3 debianmemberportfolio/model/keyringanalyzer.py
The first synchronizes the keyrings in :file:`$HOME/debian/keyring.debian.org`
with files on the `keyring.debian.org <http://keyring.debian.org>`_ host. And
the second generates a key/value database in
:file:`debianmemberportfolio/model/keyringcache.db` that is used by the code.
Run a development server
~~~~~~~~~~~~~~~~~~~~~~~~
You can run a development server using::
poetry run python3 run.py
The output of this command should look like the following::
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
You can now access your development server at the URL that is printed by the command.
If you want to stop the development server press :kbd:`Ctrl + C`.
Common development tasks
------------------------
Add new URL
~~~~~~~~~~~
Debian Member Portfolio Service uses a ini style configuration file
:file:`debianmemberportfolio/model/portfolio.ini` to configure the generated URL
patterns. The actual URL generation is done in
:py:func:`~debianmemberportfolio.views.urllist`.
If you want to add a new URL type you have to add a line in
:file:`portfolio.ini` and an entry in :py:mod:`~debianmemberportfolio.views`'s
:py:attr:`~debianmemberportfolio.views._LABELS` dictionary. The top level
dictionary keys correspond to sections in the ini file. The dictionary values
are dictionaries themselves that contain a special key ``label`` that defines
the label of the section in the output and keys for each entry to be rendered
in that section. The values in these sub-dictionaries are strings marked for
translation using the :py:func:`~flask_babel.lazy_gettext` function from
:py:mod:`flask_babel`.
The patterns in :file:`portfolio.ini` can contain the following placeholders
that are filled at runtime:
================== ========================================
Placeholder Replacement
================== ========================================
%(salsausername)s user name on `salsa.debian.org`_
%(email)s email address (URL encoded)
%(emailnoq)s email address
%(firstchar)s first character of the email address
%(forumsid)s forum user id
%(openpgpfp)s OpenPGP key fingerprint
%(name)s full name (i.e. John Smith)
%(username)s Debian user name
%(wikihomepage)s full name in camel case (i.e. JohnSmith)
================== ========================================
.. _salsa.debian.org: https://salsa.debian.org/
The replacement of placeholders is performed in the
:py:func:`~debianmemberportfolio.views.urllist` function. And uses data from
the Debian keyring. Access to the pre-parsed keyring data is performed using
the :py:func:`~debianmemberportfolio.model.dddatabuilder.build_data` function
of the module :py:mod:`debianmemberportfolio.model.dddatabuilder`, which uses
several helper functions from :py:mod:`debianmemberportfolio.model.keyfinder`
to access the key information.
Update translations
~~~~~~~~~~~~~~~~~~~
To update the translations you need to include the weblate repository as git remote::
git remote add weblate https://hosted.weblate.org/git/debian-member-portfolio-service/translations/
git fetch --all
Run the following to merge the latest translations into your local branch::
git merge weblate main
To extract translations from source files use::
poetry run pybabel extract --mapping-file=mapping.cfg --output-file=messages.pot --input-dirs=.
To merge translations with existing catalogs use::
poetry run pybabel update -i messages.pot -d debianmemberportfolio/translations
Compile the translations to gettext's .mo format using::
poetry run pybabel compile -d debianmemberportfolio/translations

View file

@ -1,28 +0,0 @@
.. Debian Member Portfolio Service documentation master file, created by
sphinx-quickstart on Tue Jan 20 22:27:21 2009. You can adapt this file
completely to your liking, but it should at least contain the root `toctree`
directive.
Debian Member Portfolio Service
===============================
The Debian Member Portfolio Service is a web application that provides links to
information regarding the activities of a person related to the `Debian Project
<https://www.debian.org/>`_.
The service was originally implemented and is hosted by Jan Dittberner at
http://portfolio.debian.net/.
.. toctree::
:maxdepth: 2
devdocs
sourcecode
credits
Indices and tables
==================
* :ref:`genindex`
* :ref:`search`

View file

@ -1,47 +0,0 @@
Source documentation
====================
The sections below contain mostly autogenerated documentation of the source
code of the Debian Member Portfolio Service.
Forms
-----
.. automodule:: debianmemberportfolio.forms
:members:
Views
-----
.. automodule:: debianmemberportfolio.views
:members:
Model
-----
.. automodule:: debianmemberportfolio.model
:members:
dddatabuilder
~~~~~~~~~~~~~
.. automodule:: debianmemberportfolio.model.dddatabuilder
:members:
keyfinder
~~~~~~~~~
.. automodule:: debianmemberportfolio.model.keyfinder
:members:
keyringanalyzer
~~~~~~~~~~~~~~~
.. automodule:: debianmemberportfolio.model.keyringanalyzer
:members:
urlbuilder
~~~~~~~~~~
.. automodule:: debianmemberportfolio.model.urlbuilder
:members:

View file

@ -1,7 +0,0 @@
[jinja2: debianmemberportfolio/templates/*.html]
encoding = utf-8
[jinja2: debianmemberportfolio/templates/*.js]
encoding = utf-8
[python: **.py]

1324
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,44 +0,0 @@
[tool.poetry]
name = "debianmemberportfolio"
version = "0.8.0"
description = "Service to create Debian Member Portfolio URLs"
authors = ["Jan Dittberner <jan@dittberner.info>"]
license = "AGPL-3.0+"
readme = "README.md"
include = [
"**/*.mo",
]
exclude = [
"**/*.pot",
"**/*.po",
]
[tool.poetry.dependencies]
python = "^3.8"
Flask = "^2.2.2"
Jinja2 = "^3.1.2"
MarkupSafe = "^2.1.1"
itsdangerous = "^2.1.2"
Babel = "^2.10.3"
Flask-Babel = "^2.0.0"
pytz = "^2023.3"
speaklater = "^1.3"
flask-wtf = "^1.0.1"
email-validator = "^1.3.0"
[tool.poetry.dev-dependencies]
poetry-babel-plugin = "~0.1.0"
[tool.poetry.group.dev.dependencies]
sphinx = "<6"
docutils = "<0.18"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[[tool.poetry_babel_plugin.compile]]
domains = ["messages"]
directory = "debianmemberportfolio/translations"
fuzzy = false

View file

28
run.py
View file

@ -1,28 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# -*- python -*-
#
# Debian Member Portfolio Service Flask runner
#
# Copyright © 2015 Jan Dittberner <jan@dittberner.info>
#
# This file is part of the Debian Member Portfolio Service.
#
# Debian Member Portfolio Service 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.
#
# Debian Member Portfolio Service 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 <https://www.gnu.org/licenses/>.
#
from debianmemberportfolio import app
if __name__ == '__main__':
app.debug = True
app.run()

39
setup.cfg Normal file
View file

@ -0,0 +1,39 @@
[egg_info]
tag_build = dev
tag_svn_revision = true
[easy_install]
find_links = http://www.pylonshq.com/download/
[build_sphinx]
source-dir = docs
[publish]
doc-dir=docs/html
make-dirs=1
[nosetests]
with-pylons = test.ini
cover-package = ddportfolioservice
# Babel configuration
[compile_catalog]
domain = ddportfolioservice
directory = ddportfolioservice/i18n
statistics = true
[extract_messages]
add_comments = TRANSLATORS:
output_file = ddportfolioservice/i18n/ddportfolioservice.pot
width = 80
[init_catalog]
domain = ddportfolioservice
input_file = ddportfolioservice/i18n/ddportfolioservice.pot
output_dir = ddportfolioservice/i18n
[update_catalog]
domain = ddportfolioservice
input_file = ddportfolioservice/i18n/ddportfolioservice.pot
output_dir = ddportfolioservice/i18n
previous = true

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