Compare commits

..

447 commits

Author SHA1 Message Date
f04dbaab3d Merge branch 'release/0.6.4' into master
* release/0.6.4: (21 commits)
  Bump version to 0.6.4
  Update german translation
  Update copyright years
  Remove alioth references
  Fix documentation build
  Remove gmane links
  Add new Debian Janitor service
  Translated using Weblate (Polish)
  Translated using Weblate (Chinese (Simplified))
  Translated using Weblate (Japanese)
  Added translation using Weblate (Japanese)
  Translated using Weblate (Portuguese)
  Added translation using Weblate (Portuguese)
  Translated using Weblate (Russian)
  Translated using Weblate (Portuguese (Portugal))
  Translated using Weblate (Russian)
  Added translation using Weblate (Russian)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Portuguese (Brazil))
  Translated using Weblate (Portuguese (Brazil))
  ...
2020-10-27 08:41:01 +01:00
98a56c52bd Bump version to 0.6.4 2020-10-27 08:39:29 +01:00
6e4f3e1a24 Update german translation 2020-10-27 08:38:26 +01:00
138bb7b860 Update copyright years 2020-10-27 08:38:03 +01:00
fb9a387616 Remove alioth references
The alioth.debian.org service has been decommisioned. This commit
removes links to alioth and the alioth user name input field.

Fixes #1
2020-10-27 08:29:54 +01:00
5e213917b7 Fix documentation build 2020-10-27 08:28:27 +01:00
778a11a93a Remove gmane links
The gmane service does not exist anymore.
2020-10-27 08:05:16 +01:00
Paul Wise
b5c3976582 Add new Debian Janitor service 2020-10-27 08:02:41 +01:00
Jan Dittberner
f9ddb60b98
Translated using Weblate (Polish)
Currently translated at 14.2% (13 of 91 strings)
2020-10-27 07:59:43 +01:00
tao wang
1f04b0d908
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (90 of 90 strings)
2020-10-15 12:26:40 +02:00
Shuji Sado
b97be917f9
Translated using Weblate (Japanese)
Currently translated at 67.0% (61 of 91 strings)
2020-09-27 15:40:59 +02:00
Shuji Sado
7fa6c3976d
Added translation using Weblate (Japanese) 2020-09-26 14:48:27 +02:00
ssantos
db883f68e3
Translated using Weblate (Portuguese)
Currently translated at 100.0% (91 of 91 strings)
2020-09-22 20:40:59 +02:00
ssantos
084acbefa7
Added translation using Weblate (Portuguese) 2020-09-21 20:03:57 +02:00
Nikita Epifanov
93cdb8c0b9
Translated using Weblate (Russian)
Currently translated at 100.0% (91 of 91 strings)
2020-09-09 20:36:13 +02:00
ssantos
f4987ec8ec
Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.9% (90 of 91 strings)
2020-08-23 23:36:49 +02:00
Nikita Epifanov
c17aad2b5e
Translated using Weblate (Russian)
Currently translated at 19.7% (18 of 91 strings)
2020-08-22 12:36:45 +02:00
Nikita Epifanov
7b5531cc35
Added translation using Weblate (Russian) 2020-08-21 11:42:54 +02:00
Allan Nordhøy
55b6a4ff92
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (90 of 90 strings)
2020-08-15 00:32:55 +02:00
Wellington Terumi Uemura
ab5853b246
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (90 of 90 strings)
2020-07-26 08:41:54 +02:00
Wellington Terumi Uemura
ee84afc6a1
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (90 of 90 strings)
2020-02-26 14:32:54 +01:00
Boyuan Yang
ffecf4f539
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (90 of 90 strings)
2020-02-24 22:32:55 +01:00
e78075e4c5 Release 0.6.3
Update and add translations from Weblate
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAl5RFCQUHGphbkBkaXR0
 YmVybmVyLmluZm8ACgkQDXkdyNc3wdl75QgA4KDMXNX5j+pUzML9gKf6DTSm8SMU
 mwZNd+OJlEChuCxz6ZfgtDbelDDHes7F7mGYXq2ifUxrh63dItLFQRkE+6TuLqqg
 01a0AsGgm2m36hLHiIRIn1NjxXkr7ggUfbkeRFGgEpal9VY2pabJT471c9wBwnSR
 g7T7O0jKDdG001V3NlHp5xTxsyUKm7mEgBZhJO65+uio6MZgQ3wrIyjA0fEwtkiW
 825Z/eCLHgTBNq2+Nzv+TlascBIuwNLw2zMf1xBWrrXrprnb/LfDkZEDIWZWl231
 am05/6TfjOTFbSE9bXHEIfsv/r4REwJzA3g7ozHAORSqZ6TxsgLFZOgdGQ==
 =NuuY
 -----END PGP SIGNATURE-----

Merge tag '0.6.3' into develop

Release 0.6.3

Update and add translations from Weblate
2020-02-22 12:44:40 +01:00
ee8f5ef90e Merge branch 'release/0.6.3' 2020-02-22 12:44:17 +01:00
0886075891 Update version and ChangeLog 2020-02-22 12:43:41 +01:00
Michal Biesiada
91abd158d9
Translated using Weblate (Polish)
Currently translated at 9.8% (9 of 91 strings)
2020-02-22 11:18:04 +01:00
Michal Biesiada
ea4946428d
Added translation using Weblate (Polish) 2020-02-22 01:19:06 +01:00
Tiago Naufragado
888f73bb8d
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.9% (89 of 90 strings)
2020-02-08 15:50:20 +01:00
Adolfo Jayme Barrientos
84cec1b5b0
Translated using Weblate (Spanish)
Currently translated at 90.1% (82 of 91 strings)
2019-12-19 05:21:10 +01:00
Prachi Joshi
c70ab8456a
Translated using Weblate (Marathi)
Currently translated at 18.7% (17 of 91 strings)
2019-12-14 21:21:08 +01:00
Prachi Joshi
37579edadc
Added translation using Weblate (Marathi) 2019-12-13 20:16:18 +01:00
Adolfo Jayme Barrientos
acf9f4b479
Translated using Weblate (Spanish)
Currently translated at 89.0% (81 of 91 strings)
2019-11-04 09:03:53 +01:00
Adolfo Jayme Barrientos
be9d4db288
Translated using Weblate (Spanish)
Currently translated at 86.8% (79 of 91 strings)
2019-11-01 09:03:49 +01:00
Manuela Silva
bd981e9a76
Translated using Weblate (Portuguese (Portugal))
Currently translated at 71.4% (65 of 91 strings)
2019-10-28 12:09:37 +01:00
Adolfo Jayme Barrientos
69b79eb652
Translated using Weblate (Spanish)
Currently translated at 85.7% (78 of 91 strings)
2019-10-28 12:09:36 +01:00
Mattias Münster
377d75a9b0
Translated using Weblate (Swedish)
Currently translated at 100.0% (91 of 91 strings)
2019-10-17 19:52:58 +02:00
Mattias Münster
c8d9ffd44d
Added translation using Weblate (Swedish) 2019-10-16 18:35:52 +02:00
Adolfo Jayme Barrientos
5e415671f7
Translated using Weblate (Spanish)
Currently translated at 84.6% (77 of 91 strings)
2019-10-14 04:52:37 +02:00
Manuela Silva
2910296d0b
Translated using Weblate (Portuguese (Portugal))
Currently translated at 61.5% (56 of 91 strings)
2019-09-28 00:54:20 +02:00
Manuela Silva
7dd722c956
Translated using Weblate (Portuguese (Portugal))
Currently translated at 9.9% (9 of 91 strings)
2019-09-27 00:14:47 +02:00
Manuela Silva
d0e1a22d27
Added translation using Weblate (Portuguese (Portugal)) 2019-09-27 00:10:15 +02:00
Adolfo Jayme Barrientos
c3ebd8a325
Translated using Weblate (French)
Currently translated at 100.0% (90 of 90 strings)
2019-09-17 16:24:06 +02:00
Adolfo Jayme Barrientos
8b3811707f
Translated using Weblate (Spanish)
Currently translated at 83.5% (76 of 91 strings)
2019-09-17 16:24:05 +02:00
Adolfo Jayme Barrientos
b25c738092
Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.2% (83 of 90 strings)
2019-09-17 16:24:04 +02:00
Adolfo Jayme Barrientos
50199acfc3
Translated using Weblate (Spanish)
Currently translated at 65.9% (60 of 91 strings)
2019-09-16 14:30:18 +02:00
Adolfo Jayme Barrientos
e3d415edb1
Added translation using Weblate (Spanish) 2019-09-16 10:58:50 +02:00
Allan Nordhøy
852b833656
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (90 of 90 strings)
2019-08-01 07:11:48 +02:00
THANOS SIOURDAKIS
f08e4cc42c
Translated using Weblate (Greek)
Currently translated at 3.3% (3 of 91 strings)
2019-06-26 23:00:54 +02:00
THANOS SIOURDAKIS
92cdf2d324
Added translation using Weblate (Greek) 2019-06-25 22:04:29 +02:00
22b33220fc Release 0.6.3
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAl0PXHcACgkQDXkdyNc3
 wdlwaQf/QGDAROAu1Rs+YG+vXsyroeqHIk+Q+VgtVJqpkkGEOi1S7Sys/AOVGK6S
 jM2Q/pegx7X4iOtvhoe8rGv/DFJqc690a5zlvmE/BoFEPWDL+knSANF2ytUmJlcD
 mBshJoA4YPJohGVImSRKK8O5zMqGpcbolwd2KMbkvMzcwsrJfFhfZtM9kjel77yy
 KBA6Tr/zpftboIeMDBRRZivrUbejTUwoUSJ2iYUKeeHlUSx4SgghCc9Or//a2uWk
 l9MyIyk3r/GqSi6wESS8tMgaM6DjHSgjWo8OWDux96/Rfeyg51OYN/bepK90zGRe
 +xHe/W4cICDM1PmasxXjYqQN+YTnqQ==
 =XTdk
 -----END PGP SIGNATURE-----

Merge tag '0.6.3' into develop

Release 0.6.3

* tag '0.6.3':
2019-06-23 13:03:25 +02:00
e3067c5e12 Merge branch 'release/0.6.3'
* release/0.6.3:
  Update version in documentation
  Update git URLs
  Translated using Weblate (Dutch)
  Translated using Weblate (Chinese (Traditional))
  Translated using Weblate (Chinese (Traditional))
  Added translation using Weblate (Chinese (Traditional))
  Translated using Weblate (French)
  Translated using Weblate (French)
  Translated using Weblate (Portuguese (Brazil))
  Translated using Weblate (Norwegian Bokmål)
2019-06-23 13:03:09 +02:00
a6dfa99ea8 Update version in documentation 2019-06-23 13:00:27 +02:00
0ed6712711 Update git URLs
Git for debianmemberportfolio has been moved to a gitea instance. URLs
for cloning and repository browsing have been updated.
2019-06-23 12:55:44 +02:00
Frans Spiesschaert
eb0dbb2b87
Translated using Weblate (Dutch)
Currently translated at 100.0% (90 of 90 strings)
2019-03-18 15:03:19 +01:00
Louies
b9268fa0af
Translated using Weblate (Chinese (Traditional))
Currently translated at 22.0% (20 of 91 strings)
2019-01-20 16:12:01 +01:00
Louies
c20d7df99a
Translated using Weblate (Chinese (Traditional))
Currently translated at 19.8% (18 of 91 strings)
2019-01-14 19:19:56 +01:00
Louies
1f47cadfde
Added translation using Weblate (Chinese (Traditional)) 2019-01-13 14:31:35 +01:00
Olivier Humbert
a29be7a668
Translated using Weblate (French)
Currently translated at 100.0% (90 of 90 strings)
2018-11-26 15:07:33 +01:00
ButterflyOfFire
94fac9d933
Translated using Weblate (French)
Currently translated at 98.9% (89 of 90 strings)
2018-11-25 14:41:01 +01:00
ButterflyOfFire
ab1c98e69a
Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.2% (83 of 90 strings)
2018-10-25 01:37:19 +02:00
Allan Nordhøy
9fbfb5d457
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (90 of 90 strings)
2018-09-28 09:30:36 +02:00
1c7ea3f73c Release 0.6.2
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAlr2qQwACgkQDXkdyNc3
 wdnIXgf/fIib9qKUy9BfuRt5BXeUb0Lp/UIRdlY8k1NW5swV5yET9NR8MA1pCWGP
 6B0x5rJnLiE5NIzUG/o8CQNvvTaf7uTfQti+SN7ddwwSw61jJ9WqkILWslugr0i5
 df4TNJPIREosmjMQ3gYrRqTBfcQx/bx8Wrz5V4fjVazBjq484cBj+JE8tnjQi/ZQ
 NQI5IyJoJAFryb6s6REgph+FK6fEpRmYBYO8g4eb/h9AveWheu1TDhz90tdLCxA+
 bA9eA/Z+I9BIEk/zjcRhLq8wJLZ+apLmzHfiug6IOYm9Dnzc/CU5djwO5lDFqzLe
 3ZEMgj1t1xK7LnqgThNu/poZXFwT2w==
 =KnCw
 -----END PGP SIGNATURE-----

Merge tag '0.6.2' into develop

Release 0.6.2

* tag '0.6.2':
  Update ChangeLog and version
2018-05-12 10:42:55 +02:00
9568f01bf2 Merge branch 'release/0.6.2'
* release/0.6.2:
  Update ChangeLog and version
  Update german translation
  Add Repology information links
  Translated using Weblate (French)
  Translated using Weblate (French)
2018-05-12 10:42:41 +02:00
06d9f7a67b Update ChangeLog and version 2018-05-12 10:42:23 +02:00
97e5ffe8bb Update german translation 2018-05-12 10:36:23 +02:00
6ba1bc8c12 Merge remote-tracking branch 'weblate/develop' into develop
* weblate/develop:
  Translated using Weblate (French)
  Translated using Weblate (French)
2018-05-12 10:32:10 +02:00
Paul Wise
a84d14a178 Add Repology information links 2018-05-12 10:28:18 +02:00
Olivier Humbert
3dd49e4d69 Translated using Weblate (French)
Currently translated at 100.0% (90 of 90 strings)
2018-02-13 10:36:20 +01:00
Olivier Humbert
8297b4882a Translated using Weblate (French)
Currently translated at 100.0% (90 of 90 strings)
2018-02-12 10:33:29 +01:00
c75398a027 Release 0.6.1
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAlp9bocACgkQDXkdyNc3
 wdkSHAf+JG4v6G5nYu92kjNLvhVPVn/ysh+mgz3eo1Xtp4h0ri9MuGAO6Osp68FQ
 qm6ZXIf+s/2o5OQJh8e4buDBRCiMhwW9h7Ja/a/9y2ydjIoR+2z0+5BCjPUKSk3X
 x7CfS99LfohiqTQ/uBa1OfxuyD1rHjLbTjVUnFwHAzChvt0l3kBsdCBXTmTg9VMt
 zg9qbSIHk+PS+8btPU+SNh7U9cu9em+L6IUjEULVDG+Fhyo+JDosghXNC68TVMZn
 dkH89gqb4BEWKb4DmkpNpbw9GF0eT+4WXX3H32vYrOyZzi1pcFQAMkC1UOUg8bQt
 H+yRyHMhIEbFJ45jbhvZj65rUBEDOg==
 =2rZR
 -----END PGP SIGNATURE-----

Merge tag '0.6.1' into develop

Release 0.6.1

* tag '0.6.1':
  Bump version number
2018-02-09 10:48:59 +01:00
7b44e75ff6 Merge branch 'release/0.6.1'
* release/0.6.1:
  Bump version number
  Add missing link to salsa
2018-02-09 10:48:45 +01:00
112a78c220 Bump version number 2018-02-09 10:48:35 +01:00
9a3c5d2934 Add missing link to salsa 2018-02-09 10:46:27 +01:00
da6e08469e Release 0.6.0
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAlp9a7gACgkQDXkdyNc3
 wdllqwf+JBMhph6j20dk2IdTFk+eS+Zd4HLZ0QLldbmsahfH2yKzwyzmpMDMAEmM
 dd2O0BfeAw/R+2fE3/FBwbedDn+73cp9Z66utdhmIIyMY3Z2vi320rj+tXfvJpHl
 h5KBgcizSB7FSNpLEh4rsIbM5sVcbqeEhl5WmIVDnDhwalYj8XOPdhSbH9A16CWb
 DRl+ZZncK29U6WxUq3+dcP8QQjYj8Wxb3X1ZIKRVV+cFc1I8fQJKLbbGpFaZi6Qd
 c0aOnj+vaExKKINLOJC/kCSADVPIANXMcHykuegX2ptSfr6ErCSml8k1HHDNllo6
 XscQV2sFR9kVMzluR81YWdjJdwK5dA==
 =C80f
 -----END PGP SIGNATURE-----

Merge tag '0.6.0' into develop

Release 0.6.0

* tag '0.6.0':
  Bump version number, update ChangeLog
2018-02-09 10:36:59 +01:00
bb19a60184 Merge branch 'release/0.6.0'
* release/0.6.0:
  Bump version number, update ChangeLog
  Update copyright years and some translations
  Merge translations from Weblate, update catalogs
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Add username for and link to the Salsa service
2018-02-09 10:36:40 +01:00
f0dee9228e Bump version number, update ChangeLog 2018-02-09 10:36:25 +01:00
2556d439a4 Update copyright years and some translations 2018-02-09 10:30:20 +01:00
4e89d9d520 Merge translations from Weblate, update catalogs 2018-02-09 10:10:24 +01:00
72a542afde Merge remote-tracking branch 'weblate/develop' into develop
* weblate/develop:
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
2018-02-09 10:07:55 +01:00
Petter Reinholdtsen
bb16a10e12 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (87 of 87 strings)
2018-02-09 10:07:17 +01:00
Petter Reinholdtsen
b488f9281e Translated using Weblate (Norwegian Bokmål)
Currently translated at 93.1% (81 of 87 strings)
2018-02-09 10:07:17 +01:00
Allan Nordhøy
0daefe8819 Translated using Weblate (Norwegian Bokmål)
Currently translated at 83.9% (73 of 87 strings)
2018-02-09 10:07:17 +01:00
Allan Nordhøy
258fb442dd Translated using Weblate (Norwegian Bokmål)
Currently translated at 77.0% (67 of 87 strings)
2018-02-09 10:07:17 +01:00
Paul Wise
a627c20031 Add username for and link to the Salsa service
Salsa will be gradually replacing the Alioth service.
2018-02-09 10:03:45 +01:00
c13b49b3ce Merge tag '0.5.2' into develop
Release 0.5.2

* tag '0.5.2':
  Bump version to 0.5.2
2017-09-12 22:16:26 +02:00
b1a9f39c33 Merge branch 'release/0.5.2'
* release/0.5.2:
  Bump version to 0.5.2
  Strip non hexadecimal characters from GPG fingerprint input
  Fix issues with incompletely filled forms
2017-09-12 22:15:44 +02:00
0247ac612b Bump version to 0.5.2 2017-09-12 22:14:47 +02:00
f11114f580 Strip non hexadecimal characters from GPG fingerprint input
This commit removes non hexadecimal characters from entered GPG
fingerprint values to allow copy and paste from gpg output.
2017-09-12 22:13:02 +02:00
ff3cc9d940 Fix issues with incompletely filled forms
This commit reintroduces support for forms with email address as
the only mandatory parameter.
2017-09-12 21:58:46 +02:00
fc3d0fe705 Release 0.5.1
-----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEKHuXKkUYdvdO9493DXkdyNc3wdkFAlm1ETUACgkQDXkdyNc3
 wdlHhAf/RdtJv4T6ISoBGWWcEB7JEzxvb1l78jnBhhgzyP+VYwKVYiqR8obeTHhu
 eu7F5zkbVR31vp8wmqr9f/vihThhta9coHvIksl8p/7If1sc7C0sH5eHyKtg/IsM
 BTiIZglgZLtmDAgit6se+/vAlyo/aWiy6dJdrJkZFYwQBiNSvB7OhhvpmHGBf6rx
 zSlzfqjoiyroaCbgUHRZQBQi17rTBhDPU7+mL9TP92wxbx5x2G9U5uuJDfH/IA+A
 PmQ2zSYafhuFhEh1PV0oXc5uuXQpE9Dl6f2FxsCNto9mYExDgTYtuwUbmI6DcYac
 ZY82Ae4sJRQM/8oI5ZfO8kapEGWH2Q==
 =SlYV
 -----END PGP SIGNATURE-----

Merge tag '0.5.1' into develop

Release 0.5.1

* tag '0.5.1':
  Bump version
2017-09-10 12:17:28 +02:00
73871181d4 Merge branch 'release/0.5.1'
* release/0.5.1:
  Bump version
  Use new FlaskForm API
2017-09-10 12:17:15 +02:00
178767102c Bump version 2017-09-10 12:17:05 +02:00
7ac41be37b Use new FlaskForm API 2017-09-10 12:16:24 +02:00
53d0cffb77 Merge tag '0.5.0' into develop
Release 0.5.0

* tag '0.5.0':
  Bump version
2017-09-10 11:41:22 +02:00
77a23cce88 Merge branch 'release/0.5.0'
* release/0.5.0: (55 commits)
  Bump version
  Update translations, reference Weblate instead of Transifex
  Update dependencies
  Remove the alioth fileserver
  Fix parameters for the lists search service
  Fix subdirectory for the duck service
  Use https and .org for the debtags service
  Use https for search.debian.org
  Use https for planet-search.debian.org
  Fix unused arguments, remove Pylons websetup
  Translated using Weblate (Chinese (Simplified))
  Translated using Weblate (Dutch)
  Translated using Weblate (German)
  Update translation catalogs
  Switch to Weblate, update Copyright years
  Fix deprecation warning
  Ignore PyCharm files
  Update dependencies to current Debian stretch versions
  Translated using Weblate (Dutch)
  Added translation using Weblate (Dutch)
  ...
2017-09-10 11:41:11 +02:00
956eaff83d Bump version 2017-09-10 11:41:00 +02:00
91751dcc17 Merge remote-tracking branch 'weblate/develop' into develop
* weblate/develop:
  Translated using Weblate (Chinese (Simplified))
  Translated using Weblate (Dutch)
2017-09-10 11:07:55 +02:00
6c5d55ed0b Update translations, reference Weblate instead of Transifex 2017-09-10 10:54:52 +02:00
1e69cc3bfe Update dependencies 2017-09-10 10:43:56 +02:00
Paul Wise
95f411b757 Remove the alioth fileserver
The alioth admins are not going to bring it back.
2017-09-10 10:31:46 +02:00
Paul Wise
bfae5b5820 Fix parameters for the lists search service 2017-09-10 10:31:41 +02:00
Paul Wise
8fe6a79649 Fix subdirectory for the duck service 2017-09-10 10:31:38 +02:00
Paul Wise
56494bf307 Use https and .org for the debtags service 2017-09-10 10:31:34 +02:00
Paul Wise
a392c1b439 Use https for search.debian.org 2017-09-10 10:30:58 +02:00
Paul Wise
2229fb4604 Use https for planet-search.debian.org 2017-09-10 10:30:53 +02:00
23f3c78141 Fix unused arguments, remove Pylons websetup 2017-08-20 21:10:27 +02:00
Boyuan Yang
bb4c006144 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.5% (84 of 87 strings)
2017-04-03 09:44:31 +02:00
Heimen Stoffels
4b834d0e79 Translated using Weblate (Dutch)
Currently translated at 100.0% (87 of 87 strings)
2017-02-17 12:44:20 +01:00
Jan Dittberner
e79d16c42f Translated using Weblate (German)
Currently translated at 100.0% (87 of 87 strings)
2017-02-17 12:21:00 +01:00
c1c0e388da Update translation catalogs 2017-02-17 12:13:47 +01:00
1664b527bd Merge remote-tracking branch 'weblate/develop' into develop
* weblate/develop:
  Translated using Weblate (Dutch)
  Added translation using Weblate (Dutch)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Translated using Weblate (Norwegian Bokmål)
  Added translation using Weblate (Norwegian Bokmål)
  Translated using Weblate (Indonesian)
  Translated using Weblate (Indonesian)
  Translated using Weblate (Chinese (China))
  Translated using Weblate (Chinese (China))
  Translated using Weblate (Chinese (China))
  Added translation using Weblate (Chinese (China))
  Translated using Weblate (German)
2017-02-17 12:13:04 +01:00
40c778884a Switch to Weblate, update Copyright years 2017-02-17 12:05:56 +01:00
da2d299e97 Fix deprecation warning
flask.ext.babel and flask.ext.wtf have been replaced by flask_babel and
flask_ext.
2017-02-17 11:57:38 +01:00
075d6665ae Ignore PyCharm files 2017-02-17 11:56:37 +01:00
50ef1a799a Update dependencies to current Debian stretch versions 2017-02-17 11:55:50 +01:00
Heimen Stoffels
b84bb49482 Translated using Weblate (Dutch)
Currently translated at 100.0% (87 of 87 strings)
2017-01-22 13:48:02 +01:00
Heimen Stoffels
6521a25b8d Added translation using Weblate (Dutch) 2017-01-22 13:29:42 +01:00
Petter Reinholdtsen
c3c1022214 Translated using Weblate (Norwegian Bokmål)
Currently translated at 75.8% (66 of 87 strings)
2016-11-15 15:45:20 +01:00
Petter Reinholdtsen
cadc3271c7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 74.7% (65 of 87 strings)
2016-11-09 21:45:27 +01:00
Petter Reinholdtsen
f872a4aeb9 Translated using Weblate (Norwegian Bokmål)
Currently translated at 73.5% (64 of 87 strings)
2016-10-28 09:45:27 +02:00
Petter Reinholdtsen
fa73870973 Added translation using Weblate (Norwegian Bokmål) 2016-10-26 07:53:32 +02:00
Izharul Haq
899b59e7fb Translated using Weblate (Indonesian)
Currently translated at 100.0% (86 of 86 strings)
2016-08-30 00:45:01 +02:00
Izharul Haq
490c7bae8f Translated using Weblate (Indonesian)
Currently translated at 100.0% (86 of 86 strings)
2016-08-27 22:15:02 +02:00
chimez
387db4ffd5 Translated using Weblate (Chinese (China))
Currently translated at 93.1% (81 of 87 strings)
2016-08-20 06:44:19 +02:00
chimez
ce1c5f9eaa Translated using Weblate (Chinese (China))
Currently translated at 29.8% (26 of 87 strings)
2016-08-18 05:18:53 +02:00
chimez
7887065c25 Translated using Weblate (Chinese (China))
Currently translated at 8.0% (7 of 87 strings)
2016-08-18 04:14:47 +02:00
chimez
e2679a5586 Added translation using Weblate (Chinese (China)) 2016-08-18 03:07:47 +02:00
Jan Dittberner
1127d684ba Translated using Weblate (German)
Currently translated at 100.0% (87 of 87 strings)
2016-07-23 12:44:54 +02:00
eb201c6832 Remove comments from stretch.pip, fix run.py 2016-06-18 19:32:53 +02:00
44aace1ac8 Merge tag 'revert-logo' into develop
Revert the logo change for mourning Ian

* tag 'revert-logo':
  Revert "Add ribbon logo - R.I.P. Ian"
2016-03-23 20:35:31 +01:00
1432a9e44f Merge branch 'hotfix/revert-logo'
* hotfix/revert-logo:
  Revert "Add ribbon logo - R.I.P. Ian"
2016-03-23 20:34:31 +01:00
5e289ebc98 Revert "Add ribbon logo - R.I.P. Ian"
This reverts commit 8dc19247de.
2016-03-23 20:26:30 +01:00
58312f2b55 Merge tag 'imageurl-ribbon' into develop
Image-URL fix

* tag 'imageurl-ribbon':
  Fix image URL
2015-12-31 18:19:13 +01:00
fd7a811276 Merge branch 'hotfix/imageurl-ribbon'
* hotfix/imageurl-ribbon:
  Fix image URL
2015-12-31 18:18:43 +01:00
60a52116cb Fix image URL 2015-12-31 18:18:28 +01:00
338e4dc8a1 Merge tag 'mourning-ian' into develop
R.I.P. Ian

* tag 'mourning-ian':
  Add ribbon logo - R.I.P. Ian
2015-12-31 18:13:29 +01:00
6808fdc338 Merge branch 'hotfix/mourning-ian'
* hotfix/mourning-ian:
  Add ribbon logo - R.I.P. Ian
2015-12-31 18:12:16 +01:00
8dc19247de Add ribbon logo - R.I.P. Ian 2015-12-31 18:11:55 +01:00
72ae3c7bfb Merge branch 'feature/flask-port' into develop
* feature/flask-port: (22 commits)
  Update german translation
  Update meta information and documentation
  Remove Pylons remains
  Add result view implementation
  Port showform template to Jinja2
  Implement fetchdddata view
  Port dddatabuilder and keyfinder to Python3
  Add Stretch dependency versions
  Fix compatibility with newer jQuery
  Implement better GPG output decoding
  Use Jessie versions of dependencies
  add some jessie requirements for flask
  port keyringanalyzer to Python3
  Add initial Flask implementation
  Add Flask requirements
  Move static assets
  Add Babel configuration
  Move translation files
  Move Pylons implementation to attic
  remove Pylons references from setup.py
  ...
2015-11-12 22:21:19 +01:00
7adc53c31e Update german translation 2015-11-12 22:20:15 +01:00
0df84e586f Update meta information and documentation 2015-11-12 22:19:24 +01:00
c9ae85c2c1 Remove Pylons remains 2015-11-12 22:18:23 +01:00
b7fe1328bb Add result view implementation
This commit implements the result view and template.

- fix Python3 configparser interpolation error in portfolio.ini
- debianmemberportfolio.model.urlbuilder ported to Python3
- add showurls.html as a direct Jinja port of showurls.mako
- implement functionality in debianmemberportfolio.views.result
2015-11-12 21:11:48 +01:00
43ade2d35e Port showform template to Jinja2 2015-11-11 00:50:28 +01:00
1c86f707fa Implement fetchdddata view 2015-11-11 00:49:59 +01:00
52066eb904 Port dddatabuilder and keyfinder to Python3 2015-11-11 00:48:01 +01:00
104e6701eb Add Stretch dependency versions 2015-11-11 00:47:38 +01:00
298b12775b Fix compatibility with newer jQuery 2015-11-10 23:26:07 +01:00
2e3cb7aa64 Implement better GPG output decoding 2015-11-10 23:18:22 +01:00
8dd7b5ad84 Use Jessie versions of dependencies 2015-11-10 22:44:34 +01:00
fdd97270d6 add some jessie requirements for flask 2015-11-10 22:38:13 +01:00
cf04f6f0cb port keyringanalyzer to Python3
- ran through 2to3
- switch to new ConfigParser name
- fix UTF-8 handling of gpg output
- don't track tags and keyringcache.db in git
2015-11-10 22:38:13 +01:00
f63939cb03 Add initial Flask implementation 2015-11-10 22:38:13 +01:00
7c60ac59a6 Add Flask requirements 2015-11-10 22:38:13 +01:00
c783f96166 Move static assets
Move the static assets from debianmemberportfolio/public to
debianmemberportfolio/static where they are expected by Flask.
2015-11-10 22:38:13 +01:00
cb821caf24 Add Babel configuration 2015-11-10 22:38:13 +01:00
30a35914c3 Move translation files
This commit moves the Pylons translations files
(debianmemberportfolio/i18n) to debianmemberportfolio/translations
because this is where Babel/Flask expect them.
2015-11-10 22:38:13 +01:00
7c21e449d4 Move Pylons implementation to attic 2015-11-10 22:38:13 +01:00
1e219ee992 remove Pylons references from setup.py 2015-11-10 22:38:13 +01:00
c3ead7e729 comment Pylons requirements, add Flask requirements 2015-11-10 22:38:13 +01:00
e203f9a20a remove Wheezy requirements file wheezyreq.pip 2015-11-10 22:38:13 +01:00
59eaea87ba fix jQuery compatibility issue 2015-09-25 13:01:42 +02:00
0d54abd22f release 0.4.2
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCgAGBQJU/gLNAAoJEA15HcjXN8HZq1cIAL+qpa119dGR+mnEoulFTpbN
 itgb+hPauqGXfaebqL8jjIXW3Zebp6T1uP6PGK88qsuPibfZFQACx4k9KzAGTCL/
 Uk5KMr+eHIH5wfKS+1jjSxOwqlfcHc7IoSGzALSZEXVzJNT26hr3QX8GvjvGAjj1
 ka4EluwDAxU/67jjgUENtMorD2z0K6RmgBhzwLxqftrPlccDjeBjtqTQSrIFj8pH
 Zg0iDO6eT+Gjc2ujGAuah2nzPTAsd9suQaSX/wguBhFgRG1pw3fLYaeS7dEbrfB5
 hWS09mdZEF8D4ShajYSwSyemaAkuvxSxcsxkNGSrAV7epZQafdH01pyOi6dE/Us=
 =P0Ji
 -----END PGP SIGNATURE-----

Merge tag '0.4.2' into develop

release 0.4.2

* tag '0.4.2':
  update version number and ChangeLog
2015-03-09 21:30:10 +01:00
13b8ccc77f Merge branch 'release/0.4.2'
* release/0.4.2:
  update version number and ChangeLog
  Fix link to DMD (Closes: #779343)
2015-03-09 21:29:53 +01:00
e7bb074323 update version number and ChangeLog 2015-03-09 21:29:46 +01:00
Paul Wise
0c9dd63f61 Fix link to DMD (Closes: #779343) 2015-03-09 21:27:01 +01:00
6da0bf9109 release 0.4.1
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCgAGBQJU569ZAAoJEA15HcjXN8HZRiAIAIl9pYYpBOutQ8a605RagDOK
 dpafcBJXid4rAarjor6tzZiQS1MkP81y0URjIdoxwfAwb83gvEGMK0OPLkCfMZSZ
 uL6BLNJPRTVpJspwEjY86+nTO/zBZ77Fm45hYKxqyk+/8vO5N198TuR2EouoRdki
 54c0GC24t/RAfvbeG4bB0EyPPAwt2FVxCtahSLvX+Goyet33ROuG24R50b2fBXFw
 ZNhRFCiT7A3VPkQb3irbXZLw6BW10dEFX6Hc55Im4dhq0zg0fJC/6q5xp1bRJISj
 J2fTs/19u+nPLSzWJIjU2qRDFZfzX/jp6QZ7G/zKnt/TZBrOt0qKOkFVkOqjbLE=
 =7zTB
 -----END PGP SIGNATURE-----

Merge tag '0.4.1' into develop

release 0.4.1

* tag '0.4.1':
  bump version number
2015-02-20 23:04:14 +01:00
2a05499035 Merge branch 'release/0.4.1'
* release/0.4.1:
  bump version number
  fix language check when no Accept-Language header is set
2015-02-20 23:03:59 +01:00
ca8e6e19e2 bump version number 2015-02-20 23:03:42 +01:00
afe5828b16 fix language check when no Accept-Language header is set 2015-02-20 23:01:34 +01:00
b566a2588e release 0.4.0
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCgAGBQJU56jzAAoJEA15HcjXN8HZPjUH/iWz/Cb1sFDpB/+N2Njw7aFv
 mvYIrfmQeDhI7LISLxDtMKsNEPKoR1Bg6UW3K/ic2YfoXhcWlvtsSQembdkowmlq
 +TG9KevTlC9bVcdFkDzpzACxst9fg4lFq+kohTqeTsmmKKYMDhdNIicVVyGQ0lD/
 doc6oolJNKfrcYjZQD7lVgW69kGi3YhPsaEBfn+cYdyEg2OmRjhgj+0cQnz2PKF2
 F7d8y4sopWiW1m+zsD1hudyZGgYbYsgvDZ70DwH97DcUYLAkw29iDZGtGpGeK1a0
 AvInRsXjPVsW9fMsVuWlIzyhlp550lC/52+ahRYf2cfTS9m/l4U40ho2i248+e8=
 =sX2R
 -----END PGP SIGNATURE-----

Merge tag '0.4.0' into develop

release 0.4.0

* tag '0.4.0':
  bump version number, update changelog
2015-02-20 22:36:57 +01:00
2ac63391af Merge branch 'release/0.4.0'
* release/0.4.0:
  bump version number, update changelog
  change devdocs to Jessie
  add requirements file for Jessie
2015-02-20 22:36:41 +01:00
59cc3a82e2 bump version number, update changelog 2015-02-20 22:34:49 +01:00
8ccedf5c71 change devdocs to Jessie 2015-02-20 22:19:07 +01:00
5dfa803c17 add requirements file for Jessie 2015-02-20 22:17:24 +01:00
32b4039774 Merge tag '0.3.3' into develop
Release 0.3.3
2014-10-14 17:21:59 +02:00
4a023a5dd0 Merge branch 'release/0.3.3' 2014-10-14 17:21:23 +02:00
b93475292d bump version number, update ChangeLog 2014-10-14 17:21:08 +02:00
Paul Wise
ec3a33545c Use https instead of http in links, comments, docstrings etc.
Update URLs to new sites where needed.
2014-10-14 17:03:54 +02:00
Paul Wise
dbb3fdf106 Remove generated files from git. 2014-10-14 17:03:50 +02:00
Paul Wise
da8037fbe0 Update DUCK link to new static page 2014-10-14 17:03:45 +02:00
a3b5e3f7d2 Merge tag '0.3.2' into develop
Release 0.3.2
2014-04-10 18:07:32 +02:00
1e973cc7c4 Merge branch 'release/0.3.2' 2014-04-10 18:07:24 +02:00
871284270d prepare release 0.3.2
- update ChangeLog
- bump version number in docs/source/conf.py and setup.py
2014-04-10 18:06:39 +02:00
Paul Wise
923c463592 Use SSL in links and commands where available 2014-04-10 17:57:20 +02:00
Paul Wise
502c6c4749 Fix the link to the contributors site 2014-04-10 17:57:14 +02:00
f2f7c82761 Merge tag '0.3.1' into develop
release 0.3.1
2014-02-09 00:06:02 +01:00
1f44364a1e Merge branch 'release/0.3.1' 2014-02-09 00:05:50 +01:00
306edcd10b update ChangeLog, bump version for docs 2014-02-09 00:02:58 +01:00
caed542a9a Merge branch 'feature/renamepackage' into develop 2014-02-08 23:58:44 +01:00
b670f58c7a switch from ddportfolio to debianmemberportfolio
- change all references from ddportfolio to debianmemberportfolio
- rename debianmemberportfolio.controllers.DDPortfolioController to
  debianmemberportfolio.controllers.Controller
- update documentation
- update copyright years, unify file header formatting
2014-02-08 23:54:51 +01:00
780e10494e rename files with ddportfolio in filename 2014-02-08 17:52:20 +01:00
b6fa8b517d rename i18n files 2014-02-08 17:50:11 +01:00
dd64ba59b4 rename package directory 2014-02-08 17:47:47 +01:00
Paul Wise
8299b9aca0 Use the new parameter name for DUCK 2014-02-08 16:53:56 +01:00
944506519f Merge tag '0.3' into develop
release 0.3
2014-02-08 13:15:06 +01:00
d9765393c0 Merge branch 'release/0.3' 2014-02-08 13:14:40 +01:00
d5d98c46c3 update ChangeLog 2014-02-08 13:14:12 +01:00
421f2c5273 update headers
- update copyright years
- replace "DDPortfolio service" in file headers with "Debian Member Portfolio
  Service"
2014-02-08 13:13:26 +01:00
67a9c348bd make unit tests more useful
- check response in controller unit tests
- remove unused imports
- bump copyright years
- replace "DDPortfolio service" in file headers with "Debian Member Portfolio
  Service"
2014-02-08 13:10:59 +01:00
2eb8f30812 Merge branch 'master' into develop 2014-02-08 11:57:24 +01:00
a84c393898 update URLs for new repository name 2014-02-08 00:11:33 +01:00
13485cdb26 Merge tag '0.3' into develop
Release 0.3

- switch to Debian Wheezy dependencies
2014-01-11 17:21:05 +01:00
225fd3f568 Merge branch 'release/0.3' 2014-01-11 17:20:30 +01:00
43668f662b update for release 0.3
- bump copyright years
- fix PEP8 violations
- rewrap lines
- bump version number
- replace DDPortfolio with Debian Member Portfolio
2014-01-11 17:18:44 +01:00
743d3aea34 Merge branch 'feature/wheezy-update' into develop 2014-01-11 00:39:36 +00:00
85a2484f2e update translation files
- update catalog
- improve german translation
- update copyright years in all existing translations
- recompile catalogs
2014-01-11 01:38:03 +01:00
4e18b2bd53 update templates
- bump copyright years and update program name
- fix escape call to work with webhelpers 1.3
2014-01-11 01:33:45 +01:00
275885cb41 improve keyring analyzer
- define separate gnupg homedir as gnupghome
- update file comments in ddportfolioservice/model/ddportfolio.ini and
  ddportfolioservice/model/keyringanalyzer.py to reflect current
  copyright years and project name
- keyringanalyzer.py:
  - refactor to reduce function complexity
  - fix PEP8 violations
  - use gnupghome setting
  - switch to SafeConfigParser
2014-01-11 00:11:11 +00:00
a74c778258 ignore .ropeproject 2014-01-11 00:02:56 +00:00
2bcb98fcf2 refer to wheezyreq.pip and remove squeezereq.pip 2014-01-10 23:10:29 +00:00
cac34c879f add requirements file with Debian Wheezy version 2014-01-10 23:07:41 +00:00
2417abee4e Merge branch 'release/0.2.20' 2013-11-20 17:47:55 +01:00
720c9100a2 Merge branch 'release/0.2.20' into develop 2013-11-20 17:45:08 +01:00
98399ec1bd bump version 2013-11-20 17:44:12 +01:00
a8213b789b fix syntax error 2013-11-20 17:42:46 +01:00
Olivier Berger
755a2dc5ea Revert back some name/mail processing for cases where the uid is not strictly an email 2013-11-18 13:59:49 +01:00
Paul Wise
de3dda922b Add contributor information links 2013-11-17 08:24:29 +01:00
759f1d8580 Merge branch 'release/0.2.19' into develop 2013-11-15 21:44:55 +01:00
8cb920e06d Merge branch 'release/0.2.19' 2013-11-15 21:44:44 +01:00
ecb9689ca5 bump version to 0.2.19 2013-11-15 21:44:20 +01:00
a9bde6350a give credits to Olivier Berger 2013-11-15 21:41:22 +01:00
Olivier Berger
d12111b400 Add some test code to dump contents of the cache 2013-11-15 14:36:35 +01:00
Olivier Berger
8ebe8bfede Exclude revoked ids : can't trust them, IMHO 2013-11-15 14:36:35 +01:00
Olivier Berger
2752c2e98d Adopt the way which is described in /usr/share/doc/gnupg/DETAILS.gz which expands first line, and use email.utils.parseaddr() 2013-11-15 14:36:35 +01:00
Olivier Berger
875eb57d35 Change for more useful documentation 2013-11-15 14:36:35 +01:00
772397f222 Merge branch 'release/0.2.18.1' into develop
* release/0.2.18.1:
  bump version number
2013-08-09 21:04:37 +02:00
76f8132b11 Merge branch 'release/0.2.18.1'
* release/0.2.18.1:
  bump version number
  fix typo in German translation thanks to Simon Kainz
2013-08-09 21:03:56 +02:00
2301d34202 bump version number 2013-08-09 21:03:34 +02:00
57bc445b5a fix typo in German translation thanks to Simon Kainz 2013-08-09 20:54:02 +02:00
8573ef5445 Merge branch 'release/0.2.18' into develop
* release/0.2.18:
  update changelog
  bump version number
2013-02-24 22:56:44 +01:00
c4330f5554 Merge branch 'release/0.2.18'
* release/0.2.18:
  update changelog
  bump version number
  add documentation on how to add a new URL
  use docs/build instead of docs/html
  move documentation sources to docs/source
  add initial development documentation
  add source reference in docs/sourcecode.rst
  add introduction text and credits file
  prepare sphinx documentation building
  ignore vim swap files
2013-02-24 22:56:32 +01:00
e82e241158 update changelog 2013-02-24 22:56:09 +01:00
8ac4054463 bump version number 2013-02-24 22:54:39 +01:00
23e8c7ce0e Merge branch 'feature/devdocs' into develop
* feature/devdocs:
  add documentation on how to add a new URL
  use docs/build instead of docs/html
  move documentation sources to docs/source
  add initial development documentation
  add source reference in docs/sourcecode.rst
  add introduction text and credits file
  prepare sphinx documentation building
  ignore vim swap files
2013-02-24 22:53:00 +01:00
9706f2777c add documentation on how to add a new URL 2013-02-24 22:52:36 +01:00
1fc616adf7 use docs/build instead of docs/html 2013-02-24 22:25:23 +01:00
f778c21b0e move documentation sources to docs/source
* docs/source/conf.py
  - add toplevel directory to Python search path to allow building of
    documentation using system sphinx installation
2013-02-24 22:13:12 +01:00
4304c425f7 add initial development documentation 2013-02-24 22:04:55 +01:00
599f10a6bb add source reference in docs/sourcecode.rst
* ddportfolioservice/controllers/ddportfolio.py
  - add docstring to DdportfolioController
* ddportfolioservice/model/__init__.py
  - add module docstring
* docs/index.rst
  - add link to sourcecode file
* docs/sourcecode.rst
  - include autogenerated module information
2013-02-24 22:01:32 +01:00
b000e08b3f add introduction text and credits file 2013-02-24 21:59:19 +01:00
98b7bc2676 prepare sphinx documentation building
* docs/conf.py:
  - add sphinx.ext.viewcode to extensions
  - update copyright years
  - bump version numbers
  - explicitly define language
* setup.cfg
  - define output directory and add all_files directive
2013-02-24 21:56:02 +01:00
9efe6a7b28 ignore vim swap files 2013-02-24 21:50:56 +01:00
8ff063ed25 Merge branch 'release/0.2.17' into develop
* release/0.2.17:
  Bump version number
2013-02-24 19:39:51 +01:00
620a560d77 Merge branch 'release/0.2.17'
* release/0.2.17:
  Bump version number
  Add a pair of Planet Debian search links
2013-02-24 19:39:18 +01:00
7da151abbe Bump version number 2013-02-24 19:38:11 +01:00
Paul Wise
5cbc158015 Add a pair of Planet Debian search links 2013-02-24 19:34:35 +01:00
246397b982 Merge branch 'release/0.2.16.1' into develop 2013-02-16 11:35:01 +01:00
ca98123478 Merge branch 'release/0.2.16.1' 2013-02-16 11:34:53 +01:00
f11e1d2bc3 bump version number 2013-02-16 11:34:41 +01:00
d9522187ac add missing s to webid.pattern 2013-02-16 11:34:04 +01:00
50c4d2b135 Merge branch 'release/0.2.16' into develop 2013-02-16 11:21:40 +01:00
f666d8b18d Merge branch 'release/0.2.16' 2013-02-16 11:21:31 +01:00
b98ff0b486 bump version number 2013-02-16 11:21:23 +01:00
Paul Wise
ee4bcb5a76 Add new FOAF profiles 2013-02-16 11:13:56 +01:00
Paul Wise
7872900a53 Drop unnecessary manual HTML escaping of ampersands. 2013-02-16 11:13:56 +01:00
caad24b919 Merge branch 'release/0.2.15' into develop
* release/0.2.15:
  bump copyright years
  bump version number
2013-01-20 10:48:16 +01:00
863a12ef78 Merge branch 'release/0.2.15'
* release/0.2.15:
  bump copyright years
  bump version number
  dns information is public in LDAP, no need for ssh
  Fix the URL for DUCK.
  Fix name search link
  Fix bugs name search link
2013-01-20 10:48:07 +01:00
8ff89db557 bump copyright years 2013-01-20 10:45:26 +01:00
d31e0852e5 bump version number 2013-01-20 10:44:22 +01:00
Paul Wise
f1716a3dbf dns information is public in LDAP, no need for ssh 2013-01-20 10:40:57 +01:00
Paul Wise
c8c1a5570b Fix the URL for DUCK. 2013-01-20 10:40:57 +01:00
Paul Wise
74c05e4b2c Fix name search link 2013-01-20 10:40:57 +01:00
Paul Wise
894d2b21bb Fix bugs name search link 2013-01-20 10:40:57 +01:00
08ed759bc8 Merge branch 'release/0.2.14' into develop 2013-01-05 14:58:46 +01:00
125e8eae41 Merge branch 'release/0.2.14' 2013-01-05 14:58:38 +01:00
e033be09d0 bump version to 0.2.14 2013-01-05 14:58:18 +01:00
1dee0727f0 move to flattr API 0.6 2013-01-05 14:56:32 +01:00
2b124eae0b Merge branch 'release/0.2.13' into develop 2013-01-05 14:35:36 +01:00
c28f5b3572 Merge branch 'release/0.2.13' 2013-01-05 14:35:22 +01:00
94cc50e05f bump version to 0.2.13 2013-01-05 14:35:07 +01:00
5931919ef3 use request.scheme for the flattr js too 2013-01-05 14:34:27 +01:00
bc04b4d9be Merge branch 'release/0.2.12' into develop 2013-01-05 14:27:23 +01:00
85a85a71a6 Merge branch 'release/0.2.12' 2013-01-05 14:27:03 +01:00
ab731ddbd2 bump version number 2013-01-05 14:26:16 +01:00
b0be4b6a69 load flattr button using the same URL scheme as portfolio 2013-01-05 14:23:18 +01:00
84f8df803a Merge branch 'release/0.2.11' into develop
* release/0.2.11:
  bump version number
2012-12-08 13:55:21 +01:00
61f58968e3 Merge branch 'release/0.2.11'
* release/0.2.11:
  bump version number
  update message catalog and german translation
  add Transifex link to the footer
  add a link to the Debian Url ChecKer
2012-12-08 13:54:51 +01:00
8a2178d573 bump version number 2012-12-08 13:54:24 +01:00
6e352f54cd Merge branch 'feature/transifexlink' into develop
* feature/transifexlink:
  update ChangeLog
  update message catalog and german translation
  add Transifex link to the footer
2012-12-08 13:09:24 +01:00
91709678e9 update ChangeLog 2012-12-08 13:09:21 +01:00
b051a9c310 update message catalog and german translation 2012-12-08 13:08:28 +01:00
23bcdc33fb add Transifex link to the footer 2012-12-08 13:04:39 +01:00
9d4b5f8310 update changelog 2012-12-08 12:59:31 +01:00
9951e02710 update message catalogs, update german translation 2012-12-08 12:57:22 +01:00
Paul Wise
34365305d4 Add a link to the Debian Url ChecKer 2012-12-08 12:47:35 +01:00
1d7c775431 Merge branch 'release/0.2.10' into develop
* release/0.2.10:
  bump version number
  update ChangeLog
2012-11-21 14:55:09 +01:00
098970686a Merge branch 'release/0.2.10'
* release/0.2.10:
  bump version number
  update ChangeLog
  add Indonesian translation by Izharul Haq
  add requirements file with Debian Squeeze versions
2012-11-21 14:54:52 +01:00
9fe0bfd691 bump version number 2012-11-21 14:54:41 +01:00
5561f6eac0 update ChangeLog 2012-11-21 14:54:08 +01:00
Izharul Haq
60ce13f04f add Indonesian translation by Izharul Haq
Signed-off-by: Jan Dittberner <jan@dittberner.info>
2012-11-21 14:48:51 +01:00
a8e831dd34 add requirements file with Debian Squeeze versions 2012-11-21 14:47:48 +01:00
f179fd2b2d Merge branch 'release/0.2.9' into develop
* release/0.2.9:
  bump version number
2012-07-10 19:53:36 +02:00
b646f492c3 Merge branch 'release/0.2.9'
* release/0.2.9:
  Add support for the new Debian Maintainer Dashboard by Lucas Nussbaum.
2012-07-10 19:53:19 +02:00
2163bf0451 bump version number 2012-07-10 19:52:59 +02:00
Paul Wise
48d4776c21 Add support for the new Debian Maintainer Dashboard by Lucas Nussbaum.
Blog: http://www.lucas-nussbaum.net/blog/?p=722
2012-07-10 19:51:19 +02:00
b65bc27376 Merge branch 'release/0.2.8.3' into develop
* release/0.2.8.3:
  bump version
2012-06-19 20:19:01 +02:00
babc028897 Merge branch 'release/0.2.8.3'
* release/0.2.8.3:
  bump version
  fix handling of country specific locales
2012-06-19 20:18:33 +02:00
d2e50efdc5 bump version 2012-06-19 20:18:24 +02:00
414a599881 fix handling of country specific locales 2012-06-19 20:17:05 +02:00
f51a9b06db Merge branch 'release/0.2.8.2' into develop
* release/0.2.8.2:
  bump version number
2012-06-19 20:04:05 +02:00
ff9ae85a81 Merge branch 'release/0.2.8.2'
* release/0.2.8.2:
  bump version number
  update ChangeLog, compile pt_BR catalog
  add portuguese (Brazil) translation
2012-06-19 20:02:50 +02:00
7aeba17c42 bump version number 2012-06-19 20:02:42 +02:00
52b0523fe1 update ChangeLog, compile pt_BR catalog 2012-06-19 20:01:14 +02:00
Daniel Manzano
2256dfb9f1 add portuguese (Brazil) translation
Signed-off-by: Jan Dittberner <jan@dittberner.info>
2012-06-19 20:00:58 +02:00
82f9d83176 Merge branch 'release/0.2.8.1' into develop
* release/0.2.8.1:
  bump version number
2012-05-19 21:21:08 +02:00
881a055ea8 Merge branch 'release/0.2.8.1'
* release/0.2.8.1:
  bump version number
  updated french translation by Stéphane Aulery
2012-05-19 21:20:45 +02:00
c10324a937 bump version number 2012-05-19 21:20:42 +02:00
01d218b9ee updated french translation by Stéphane Aulery 2012-05-19 21:19:36 +02:00
bc97e56bed Merge branch 'release/0.2.8' into develop
* release/0.2.8:
  bump version to 0.2.8
2012-05-18 16:19:02 +02:00
d2793d9f25 Merge branch 'release/0.2.8'
* release/0.2.8:
  bump version to 0.2.8
  update translations
2012-05-18 16:18:49 +02:00
8880badeb6 bump version to 0.2.8 2012-05-18 16:18:00 +02:00
f27ad674c9 update translations
- add french translation contributed by Stéphane Aulery
- update german translation
2012-05-18 16:13:13 +02:00
d283528aec Merge branch 'release/0.2.7' into develop 2012-03-26 18:02:16 +02:00
f240d8a7b6 Merge branch 'release/0.2.7' 2012-03-26 18:02:02 +02:00
154710ce9e bump version number 2012-03-26 18:01:51 +02:00
3297f41aaa remove keylog URL (no replacement available) 2012-03-26 17:59:23 +02:00
f34ee644e3 Merge branch 'release/0.2.6' into develop
* release/0.2.6:
  bump version number
2012-03-24 22:09:35 +01:00
278e24f0c9 Merge branch 'release/0.2.6'
* release/0.2.6:
  bump version number
  update translations
  Remove links to DEHS, which is broken
  Cope with problems due to the lossy nm.d.o database upgrade
  update translations
  remove bugstats/karma link as suggested by Evgeni Golov
2012-03-24 22:09:29 +01:00
9e4c211c57 bump version number 2012-03-24 22:09:13 +01:00
414ac8bdca update translations 2012-03-24 22:08:04 +01:00
Paul Wise
4cf6881c6f Remove links to DEHS, which is broken 2012-03-24 22:05:28 +01:00
Paul Wise
073e9e0b06 Cope with problems due to the lossy nm.d.o database upgrade 2012-03-24 22:05:21 +01:00
cfcb1c7ca3 update translations 2012-03-24 22:04:41 +01:00
d664fa86d6 remove bugstats/karma link as suggested by Evgeni Golov 2012-03-24 22:02:23 +01:00
04819f59ab Merge branch 'release/0.2.5' into develop
* release/0.2.5:
  bump version to 0.2.5
2012-03-06 20:50:43 +01:00
161949ce64 Merge branch 'release/0.2.5'
* release/0.2.5:
  bump version to 0.2.5
  new URL for NM status
2012-03-06 20:50:32 +01:00
626650b598 bump version to 0.2.5 2012-03-06 20:50:23 +01:00
f55f2d23d0 new URL for NM status 2012-03-06 20:49:38 +01:00
dc6f4fcb55 Merge branch 'release/0.2.4' into develop
* release/0.2.4:
  bump version number
2012-03-04 16:37:04 +01:00
e1e1b6cd83 Merge branch 'release/0.2.4'
* release/0.2.4:
  bump version number
  Switch to new location for debtags
2012-03-04 16:36:26 +01:00
e21f166201 bump version number 2012-03-04 16:36:12 +01:00
Paul Wise
3a4242cc8f Switch to new location for debtags 2012-03-04 16:32:39 +01:00
1a0b9d7a07 Merge branch 'release/0.2.3' into develop
* release/0.2.3:
  bump version number
2012-01-07 16:41:10 +01:00
ef301ee107 Merge branch 'release/0.2.3'
* release/0.2.3:
  bump version number
  update german translation
  Replace public-facing "DD" with "Debian Member"
2012-01-07 16:40:40 +01:00
e6b4bb7d4f bump version number 2012-01-07 16:40:31 +01:00
94c0f755cf update german translation 2012-01-07 16:38:32 +01:00
Paul Wise
830127ccc0 Replace public-facing "DD" with "Debian Member" 2012-01-07 16:35:40 +01:00
c3b4ec0d70 Merge branch 'release/0.2.2' into develop
* release/0.2.2:
  bump version to 0.2.2
2012-01-07 01:51:17 +01:00
f27e193b0f Merge branch 'release/0.2.2'
* release/0.2.2:
  bump version to 0.2.2
  PEP-8 compliance
  add missing import of response from pylons
  update translation
  update strings in controllers
  update translations
  add babel to install_requires
  modify templates
  rewrap README
2012-01-07 01:50:49 +01:00
c0bfb35cff bump version to 0.2.2 2012-01-07 01:50:29 +01:00
5fcacf4ab2 Merge branch 'feature/cleanup' into develop
* feature/cleanup:
  PEP-8 compliance
  add missing import of response from pylons
2012-01-07 01:48:32 +01:00
6224abdf63 PEP-8 compliance
- fix all PEP-8 warnings
- bump copyright years
2012-01-07 01:46:57 +01:00
e643987d3d add missing import of response from pylons
- from pylons import response was missing for JSON processing
2012-01-07 01:23:59 +01:00
cfdaecbfb2 Merge branch 'feature/devtomember' into develop
* feature/devtomember:
  update strings in controllers
  add babel to install_requires
  update translation
  modify templates
  rewrap README
2012-01-07 01:23:02 +01:00
ef603f699f update translation 2012-01-07 01:17:20 +01:00
2bda187f91 update strings in controllers
- replace Debian Developer by Debian Member
- replace DDs by Debian Members
- bump copyright years
2012-01-07 01:13:53 +01:00
279a668de0 update translations 2012-01-07 01:03:24 +01:00
5482cdc318 add babel to install_requires 2012-01-07 01:02:56 +01:00
b540e24415 modify templates
- replace Debian Developer by Debian Member and DD address by Debian
  address in HTML/JS templates
2012-01-07 00:44:00 +01:00
08a214e96f rewrap README 2012-01-07 00:31:47 +01:00
Paul Wise
fbbb3da318 Update buildd URLs to the new per-maintainer view by Mehdi Dogguy 2011-06-05 15:24:12 +02:00
ea1e696498 change miainfo ssh URL from merkel.d.o to qa.d.o 2011-04-09 22:32:13 +02:00
7be6594b93 use master instead of merkel for group info 2011-04-09 22:20:55 +02:00
8645cecd71 update owned domains pattern 2011-04-05 12:22:24 +02:00
a7a1302d60 add one year bug history graph URL 2011-03-06 17:33:33 +01:00
413238d26b update copyright years, add clone URL 2011-01-21 18:34:08 +01:00
7a4f6a7e0d remove svnbuildstat 2011-01-21 18:11:03 +01:00
e35f5590a6 add robots.txt to avoid 404s 2010-10-27 13:20:27 +02:00
95a5cf0000 change gitweb URL to /gitweb.cgi because of hosting changes 2010-10-26 19:58:04 +02:00
94522814ef fix URL for git repository 2010-10-26 15:54:05 +02:00
9af353765d add logging and make keyringanalyzer work on Squeeze
- add logging to ddportfolioservice/model/keyfinder.py and
  ddportfolioservice/model/keyringanalyzer.py
- use ~ instead of ${HOME} in ddportfolioservice/model/ddportfolio.ini
- use subprocess.Popen instead of os.popen
2010-10-26 15:42:15 +02:00
fac0c223f4 Merge branch 'master' into pylons0.10
* master:
  add support for finger command line for db.debian.org query
2010-06-12 23:28:45 +02:00
2f93abf0c7 add support for finger command line for db.debian.org query 2010-06-12 23:23:48 +02:00
a527356eae Merge branch 'master' into pylons0.10
* master:
  add support for GPG key lookup finger command and HTTP URL
2010-06-12 00:54:50 +02:00
2f0cb0da62 add support for GPG key lookup finger command and HTTP URL 2010-06-12 00:50:18 +02:00
41a5e3e6f1 apply changes for Pylons 0.10 2010-06-12 00:29:50 +02:00
47ecf9b4ea Merge branch 'master' into pylons0.10
* master:
  remove default readonly field support
  updated translations
  populate wikihomepage in dddatabuilder.py
  add input fields for wikihomepage and forumsid
  update translations
  hide showall field for non ECMAScript clients
  add checkbox and ECMAScript code to toggle display of all fields
  enable GPG fingerprint entry with disabled ECMAScript
  handle empty email field onBlur event correctly
2010-06-12 00:24:44 +02:00
7d9e26c89b Merge branch 'improve_ui'
* improve_ui:
  remove default readonly field support
  updated translations
  populate wikihomepage in dddatabuilder.py
  add input fields for wikihomepage and forumsid
  update translations
  hide showall field for non ECMAScript clients
  add checkbox and ECMAScript code to toggle display of all fields
  enable GPG fingerprint entry with disabled ECMAScript
  handle empty email field onBlur event correctly
2010-06-12 00:19:23 +02:00
4f9e024bd3 remove default readonly field support 2010-06-12 00:18:52 +02:00
65847e4d6c updated translations 2010-06-12 00:16:27 +02:00
4782b64f06 populate wikihomepage in dddatabuilder.py 2010-06-12 00:13:04 +02:00
4450a7ccfd add input fields for wikihomepage and forumsid 2010-06-12 00:02:17 +02:00
fe0291d59e update translations 2010-06-11 23:44:00 +02:00
4902064aab hide showall field for non ECMAScript clients 2010-06-11 23:40:00 +02:00
8b1613346e add checkbox and ECMAScript code to toggle display of all fields 2010-06-11 23:36:16 +02:00
d3fe053dd3 enable GPG fingerprint entry with disabled ECMAScript 2010-06-11 23:35:32 +02:00
70d72e5f28 handle empty email field onBlur event correctly 2010-06-11 23:14:30 +02:00
d5c1fd1a34 Merge branch 'master' into pylons0.10
* master:
  use unquoted email address for MIA lookup
  mark all patterns that require optional information as optional
  update keyringanalyzer.py copyright information
  use email address for MIA pattern to catch non-DDs
  add support for automatic DM data lookup
  silence keyringanalyzer
  fix path handling in keyringanalyzer
  add flattr button
  add flattr button
2010-06-11 22:17:59 +02:00
95bc1f433d Merge branch 'dm_support'
* dm_support:
  use unquoted email address for MIA lookup
  mark all patterns that require optional information as optional
  use email address for MIA pattern to catch non-DDs
  add support for automatic DM data lookup
2010-06-11 22:04:32 +02:00
9242fdafde use unquoted email address for MIA lookup 2010-06-11 22:04:14 +02:00
dd9d8f6c52 mark all patterns that require optional information as optional 2010-06-11 21:58:11 +02:00
9a65e0b1f7 update keyringanalyzer.py copyright information 2010-06-11 21:48:49 +02:00
16f4ee464e use email address for MIA pattern to catch non-DDs 2010-06-11 21:47:36 +02:00
e5a73bfe75 add support for automatic DM data lookup 2010-06-11 21:42:30 +02:00
556e254870 Merge remote branch 'origin/deployed'
* origin/deployed:
  silence keyringanalyzer
  fix path handling in keyringanalyzer
  add flattr button
2010-06-11 20:56:05 +02:00
71c24cf9e3 silence keyringanalyzer 2010-06-06 00:39:20 +02:00
3e0df60e17 fix path handling in keyringanalyzer 2010-06-06 00:31:41 +02:00
3e8f1f10e6 Merge branch 'master' into lenny
* master:
  add flattr button
2010-06-06 00:29:46 +02:00
560aba70d9 add flattr button 2010-06-06 00:29:14 +02:00
daed37c4ab add flattr button 2010-06-06 00:27:11 +02:00
c06107c597 add flattr button 2010-06-06 00:26:49 +02:00
f2e90118f6 Merge branch 'master' into pylons0.10
* master:
  updated translations
  add support for non-url information
2010-06-04 00:35:58 +02:00
770a533e40 add support for non URL-Information 2010-06-04 00:29:28 +02:00
4eb9421004 updated translations 2010-06-04 00:29:03 +02:00
2aec4f8f98 add support for non-url information
* add ssh commands for MIA information, owned debian.net domains and
  group membership
* add support for specifying type of pattern
2010-06-04 00:24:15 +02:00
f4c2c2d58d Merge branch 'master' into pylons0.10
* master:
  update copyright information
  add ChangeLog file
2010-06-03 23:37:54 +02:00
b8af34c80b update copyright information 2010-06-03 23:33:49 +02:00
4d8fd2e9cf add ChangeLog file 2010-06-03 23:28:03 +02:00
74ed088cf9 Merge branch 'extraparams' into pylons0.10
* extraparams:
  generate wikihomepage from name if parameter is missing
  add translations for new pattern labels
  add support for optional patterns
  support non unicode fields
  add new patterns for wiki and forum
  improve handling of missing fields
  accept extra fields forumsid and wikihomepage
  use the fixed set of dependency versions from Lenny
2010-06-03 23:08:05 +02:00
cf07a446b2 Merge branch 'extraparams' into lenny
* extraparams:
  generate wikihomepage from name if parameter is missing
  add translations for new pattern labels
  add support for optional patterns
  support non unicode fields
  add new patterns for wiki and forum
  improve handling of missing fields
  accept extra fields forumsid and wikihomepage
2010-06-03 22:59:25 +02:00
bbd6ae9017 generate wikihomepage from name if parameter is missing 2010-06-03 22:58:34 +02:00
44f5ffa8c3 add translations for new pattern labels 2010-06-03 22:39:13 +02:00
3a28db9439 add support for optional patterns 2010-06-03 22:35:37 +02:00
cce0d82f56 support non unicode fields 2010-06-03 22:25:46 +02:00
ce83914398 add new patterns for wiki and forum 2010-06-03 21:59:54 +02:00
19e6e0f191 improve handling of missing fields 2010-06-03 21:58:44 +02:00
c3afa11013 accept extra fields forumsid and wikihomepage 2010-06-03 21:49:34 +02:00
03954ba7e9 Merge branch 'newrules' into pylons0.10
* newrules:
  updated translations
  add ideas for SSH functions as comment
  add idea for debconf list search as comment
  add Debian search
  add website google search
  add patch tracker
  add piuparts
  add support for "firstchar" in patterns
  add ubuntudiff to new group Ubuntu

Resolved conflicts:
	ddportfolioservice/i18n/ddportfolioservice.pot
	ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.mo
	ddportfolioservice/i18n/de/LC_MESSAGES/ddportfolioservice.po
	ddportfolioservice/model/ddportfolio.ini
2010-05-10 21:33:50 +02:00
2b6e6869f7 Merge branch 'newrules' into lenny
* newrules:
  updated translations
  add ideas for SSH functions as comment
  add idea for debconf list search as comment
  add Debian search
  add website google search
  add patch tracker
  add piuparts
  add support for "firstchar" in patterns
2010-05-10 21:22:59 +02:00
5509660a6f updated translations 2010-05-10 21:22:50 +02:00
c78f830b35 add ideas for SSH functions as comment 2010-05-10 21:18:38 +02:00
2f49b0a466 add idea for debconf list search as comment 2010-05-10 21:18:00 +02:00
5215d8d266 add Debian search 2010-05-10 21:17:14 +02:00
2c0ff46c7f add website google search 2010-05-10 21:15:46 +02:00
9cc4597bc3 add patch tracker 2010-05-10 21:13:57 +02:00
c5b592596e add piuparts 2010-05-10 21:13:03 +02:00
ea095463e1 add support for "firstchar" in patterns 2010-05-10 21:10:37 +02:00
8e70fbdb7f Merge branch 'newrules' into lenny
* newrules:
  add ubuntudiff to new group Ubuntu
2010-05-10 20:16:02 +02:00
f5879c5ab0 add ubuntudiff to new group Ubuntu 2010-05-10 20:15:49 +02:00
f5363a360c use url instead of url_for 2010-05-10 19:51:45 +02:00
f5f5e366ea modernize unit tests 2010-05-10 19:51:45 +02:00
2d12dd6a28 update line numbers in translation files 2010-05-10 19:51:45 +02:00
39fb201f84 upgrade result page to Pylons 0.10 2010-05-10 19:51:45 +02:00
0b3373da0e import missing abort function 2010-05-10 19:51:44 +02:00
c043f7b2bc update year in translations 2010-05-10 19:51:44 +02:00
64241e4028 fix unit tests 2010-05-10 19:51:44 +02:00
21b8d883d8 upgrade showformscripts controller and template 2010-05-10 19:51:44 +02:00
7e047e9b15 update translation 2010-05-10 19:51:44 +02:00
7cb0b383a3 upgrade mako templates, add explicit webhelpers 2010-05-10 19:51:44 +02:00
716ca8d40a adapt error controller to new Pylons 2010-05-10 19:51:44 +02:00
794bed92fd make the application start with pylons 0.10 2010-05-10 19:51:44 +02:00
d0082377cd use the fixed set of dependency versions from Lenny
this allows to create a clean virtualenv that behaves like a Debian Lenny
Python setup
2010-05-10 19:25:33 +02:00
284844168c ignore .coverage 2010-05-10 18:46:17 +02:00
23098f1647 use ; instead of &amp; for merkel search url 2009-09-14 21:49:28 +02:00
2a41af20f9 remove oldpeople urls 2009-09-03 22:10:24 +02:00
a0ef7157a6 use keyring files from ~/debian/keyring.debian.org 2009-09-03 22:10:02 +02:00
e9da0c6489 use keyrings as keycheck.sh does, add script for synchronizing (thanks to keycheck.sh) 2009-08-14 22:13:05 +02:00
c23223dc83 compile translations for bugs.correspondent 2009-08-14 22:05:49 +02:00
43fa465847 added translation for bugs.correspondent 2009-08-14 22:04:24 +02:00
358e2083ff add correspondent query for bugs 2009-08-14 21:52:45 +02:00
b90fee99fa switch to html as default output format 2009-02-18 09:28:37 +01:00
6d9b5b85c8 pre-fill fields if enough necessary information is given
- the email address is enough information for DDs
- default to JSON mode
- use text/javascript content type for JSON response in ddportfolio
  controller
2009-02-17 23:30:03 +01:00
2b0b098d1d fix rendering of git repository URL 2009-02-17 19:05:01 +01:00
9234d81ed7 fix XSS vulnerability reported by Moritz Naumann 2009-02-10 21:15:04 +01:00
049848d660 allow PGP keys with shorter fingerprint 2009-01-29 15:45:55 +01:00
5d86ee1032 fix Google search URL 2009-01-29 01:32:05 +01:00
92 changed files with 9143 additions and 2600 deletions

11
.gitignore vendored Normal file
View file

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

87
ChangeLog Normal file
View file

@ -0,0 +1,87 @@
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
2012-01-07 Jan Dittberner <jan@dittberner.info>
* rename Debian Developer to Debian Member, change URL to
portfolio.debian.net
* PEP-8 compliance
2011-03-06 Jan Dittberner <jan@dittberner.info>
* add one year bug history graph URL (http://glandium.org/blog/?p=1817)
2010-06-03 Jan Dittberner <jan@dittberner.info>
* add support for extra parameters forumsid and wikihomepage
* add new patterns wiki and forum to section membership
* update copyright information
* add support for non-URL type information
* add ssh commands for MIA, owned debian.net-Domains and group membership

View file

@ -1,2 +1,2 @@
recursive-include ddportfolioservice/public *
recursive-include ddportfolioservice/templates *
recursive-include debianmemberportfolio/static *
recursive-include debianmemberportfolio/templates *

View file

@ -1,19 +1,11 @@
This file is for you to describe the ddportfolioservice application. Typically
you would include information such as the information below:
Installation and Setup
======================
This is the source code for the Debian Member Portfolio Service
application [0].
Install ``ddportfolioservice`` using easy_install::
Cf. 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.
easy_install ddportfolioservice
Make a config file as follows::
[0] https://wiki.debian.org/DDPortfolio
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. <http://fsf.org/>
Copyright (C) 2007 Free Software Foundation, Inc. <https://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 <http://www.gnu.org/licenses/>.
along with this program. If not, see <https://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
<http://www.gnu.org/licenses/>.
<https://www.gnu.org/licenses/>.

3
babel.cfg Normal file
View file

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

33
config.py Normal file
View file

@ -0,0 +1,33 @@
# -*- 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

@ -1,22 +0,0 @@
# -*- 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

@ -1,22 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service config 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

@ -1,55 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service environment configuration
# 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/>.
#
"""Pylons environment configuration"""
import os
from pylons import config
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
"""
# 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',
template_engine='mako', paths=paths)
config['routes.map'] = make_map()
config['pylons.g'] = app_globals.Globals()
config['pylons.h'] = ddportfolioservice.lib.helpers
# Customize templating options via this variable
tmpl_options = config['buffet.template_options']
# CONFIGURATION OPTIONS HERE (note: all config options will override
# any Pylons config options)

View file

@ -1,79 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service middleware configuration
# 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/>.
#
"""Pylons middleware initialization"""
from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
from paste.deploy.converters import asbool
from pylons import config
from pylons.error import error_template
from pylons.middleware import error_mapper, ErrorDocuments, ErrorHandler, \
StaticJavascripts
from pylons.wsgiapp import PylonsApp
from ddportfolioservice.config.environment import load_environment
def make_app(global_conf, full_stack=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 or not 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.
``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
load_environment(global_conf, app_conf)
# The Pylons WSGI app
app = PylonsApp()
# CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)
if asbool(full_stack):
# Handle Python exceptions
app = ErrorHandler(app, global_conf, error_template=error_template,
**config['pylons.errorware'])
# Display error documents for 401, 403, 404 status codes (and
# 500 when debug is disabled)
app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf)
# Establish the Registry for this application
app = RegistryManager(app)
# Static files
javascripts_app = StaticJavascripts()
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, javascripts_app, app])
return app

View file

@ -1,49 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service routing configuration
# 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/>.
#
"""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 pylons import config
from routes import Mapper
def make_map():
"""Create, configure and return the routes Mapper"""
map = Mapper(directory=config['pylons.paths']['controllers'],
always_scan=config['debug'])
# 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/: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/:id')
map.connect('*url', controller='template', action='view')
return map

View file

@ -1,22 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service controllers 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

@ -1,140 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController
# 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/>.
#
import logging
import simplejson
from ddportfolioservice.lib.base import *
from ddportfolioservice.model.form import *
from ddportfolioservice.model.urlbuilder import *
log = logging.getLogger(__name__)
class DdportfolioController(BaseController):
_LABELS = {
'overview' : {
'label' : N_('Overview'),
'ddpo' : N_("Debian Developer's Package Overview"),
'alladdresses' : N_("""Debian Developer'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>'),
},
'build' : {
'label' : N_('Build'),
'buildd' : N_('buildd.d.o (note: co-maintainers \
<em>not</em> listed)'),
'igloo' : N_('igloo'),
'svnbuildstat' : N_('svnbuildstat'),
},
'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)'),
},
'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'),
'db' : N_('DB'),
'alioth' : N_('Alioth'),
},
'miscellaneous' : {
'label' : N_('Miscellaneous'),
'debtags' : N_('debtags'),
'links' : N_('links'),
},
}
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):
# Return a rendered template
# return render('/some/template.mako')
# or, Return a response
return render('/showform.mako')
def urllist(self):
"""Handle the actual data."""
schema = DeveloperData()
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')
data = build_urls(form_result)
if 'mode' in request.params and request.params['mode'] == 'json':
response.headers['Content-Type'] = 'text/json'
return simplejson.dumps(
dict([("%s.%s" % \
(entry[1], entry[2]), 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])))
elif entry[0] == 'section':
entry.append(_(self._get_label(entry[1])))
c.urldata = data
return render('/showurls.mako')

View file

@ -1,63 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service ErrorController
# 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/>.
#
import cgi
import os.path
from paste.urlparser import StaticURLParser
from pylons.middleware import error_document_template, media_path
from ddportfolioservice.lib.base import *
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"""
page = error_document_template % \
dict(prefix=request.environ.get('SCRIPT_NAME', ''),
code=cgi.escape(request.params.get('code', '')),
message=cgi.escape(request.params.get('message', '')))
return page
def img(self, id):
"""Serve Pylons' stock images"""
return self._serve_file(os.path.join(media_path, 'img'), id)
def style(self, id):
"""Serve Pylons' stock stylesheets"""
return self._serve_file(os.path.join(media_path, 'style'), id)
def _serve_file(self, root, path):
"""Call Paste's FileApp (a WSGI application) to serve the file
at the specified path
"""
static = StaticURLParser(root)
request.environ['PATH_INFO'] = '/%s' % path
return static(request.environ, self.start_response)

View file

@ -1,69 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service ShowformscriptController.
# 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/>.
#
import logging
import simplejson
from ddportfolioservice.lib.base import *
from ddportfolioservice.model.form import *
from ddportfolioservice.model import keyfinder
from webob.exc import HTTPBadRequest
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'
return render('/showformscript.mako')
def fetchdddata(self):
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 = dict([(field, func(str(form_result['email']))) \
for (field, func) in \
[('gpgfp', keyfinder.getFingerprintByEmail),
('name', keyfinder.getRealnameByEmail),
('username', keyfinder.getLoginByEmail)]])
fields['email'] = form_result['email']
if fields['username'] and fields['gpgfp'] and fields['name']:
fields['isdd'] = 1
else:
fields['isdd'] = 0
log.debug(fields)
response.headers['Content-Type'] = 'text/plain'
return simplejson.dumps(fields)

View file

@ -1,49 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service TemplateController
# 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/>.
#
from ddportfolioservice.lib.base import *
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

@ -1,297 +0,0 @@
# Translations template for ddportfolioservice.
# Copyright (C) 2009 ORGANIZATION
# This file is distributed under the same license as the ddportfolioservice
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: ddportfolioservice 0.1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2009-01-23 18:07+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.1\n"
#: ddportfolioservice/controllers/ddportfolio.py:35
msgid "Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:36
msgid "Debian Developer's Package Overview"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:37
msgid ""
"Debian Developer's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Bugs"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:42
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:46
msgid "bugs reported"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:47
msgid "bugstats AKA <em>karma</em>"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:48
msgid "user tags"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:49
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:51
msgid "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:54
msgid "Build"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:55
msgid "buildd.d.o (note: co-maintainers <em>not</em> listed)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:57
msgid "igloo"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:58
msgid "svnbuildstat"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:61
msgid "Quality Assurance"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:62
msgid "lintian reports"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:63
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:65
msgid "DEHS (Debian External Health Status)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "Upload"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:69
msgid ""
"keylog (per-key upload list)\n"
"(note: uses key fingerprint)"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:73
msgid "Mailing Lists"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:74
msgid "lists.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:75
msgid "lists.a.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "gmane"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:79
msgid "Files"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:80
msgid "people.d.o"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "oldpeople"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:82
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "Alioth"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:85
msgid "Membership"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:86
msgid "NM"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "DB"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:91
msgid "Miscellaneous"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:92
msgid "debtags"
msgstr ""
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "links"
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 DD email address"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:45
msgid "Alioth user name"
msgstr ""
#: ddportfolioservice/model/urlbuilder.py:73
#, python-format
msgid "Missing input: %s"
msgstr ""
#: ddportfolioservice/templates/base.mako:25
#: ddportfolioservice/templates/base.mako:33
msgid "Debian Developer Portfolio Service"
msgstr ""
#: ddportfolioservice/templates/base.mako:31
msgid "Debian Logo"
msgstr ""
#: ddportfolioservice/templates/base.mako:34
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 "
"Developer's or package maintainer's information regarding Debian."
msgstr ""
#: ddportfolioservice/templates/base.mako:40
msgid "AGPL - Free Software"
msgstr ""
#: ddportfolioservice/templates/base.mako:42
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=\"http://ddportfolio.debian.net/gitweb?p=ddportfolioservice.git;a=summary\">download"
" the source code</a> using <a href=\"http://git.or.cz\">git</a>."
msgstr ""
#: ddportfolioservice/templates/base.mako:43
msgid "Copyright &copy; 2009 Jan Dittberner"
msgstr ""
#: ddportfolioservice/templates/showform.mako:23
msgid "Enter your personal information"
msgstr ""
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:27
msgid "Debian Developer Portfolio"
msgstr ""
#: ddportfolioservice/templates/showform.mako:36
msgid "Email address:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:49
msgid "Name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:58
msgid "GPG fingerprint:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:72
msgid "Debian user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:86
msgid "Non DD email address:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:100
msgid "Alioth user name:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:111
msgid "Output format:"
msgstr ""
#: ddportfolioservice/templates/showform.mako:117
msgid "HTML"
msgstr ""
#: ddportfolioservice/templates/showform.mako:119
msgid "JSON"
msgstr ""
#: ddportfolioservice/templates/showform.mako:121
msgid "Build DD Portfolio URLs"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:23
msgid "Your personal links"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:30
msgid "Usage"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:30
msgid "URL"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:40
msgid "Error during URL creation:"
msgstr ""
#: ddportfolioservice/templates/showurls.mako:61
msgid "Restart"
msgstr ""

View file

@ -1,322 +0,0 @@
# German translations for ddportfolioservice.
# Copyright (C) 2009 Jan Dittberner
# This file is distributed under the same license as the ddportfolioservice
# project.
# Jan Dittberner <jan@dittberner.info>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: ddportfolioservice 0.1\n"
"Report-Msgid-Bugs-To: jan@dittberner.info\n"
"POT-Creation-Date: 2009-01-20 23:13+0100\n"
"PO-Revision-Date: 2009-01-23 18:07+0100\n"
"Last-Translator: Jan Dittberner <jan@dittberner.info>\n"
"Language-Team: de <LL@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.1\n"
#: ddportfolioservice/controllers/ddportfolio.py:35
msgid "Overview"
msgstr "Überblick"
#: ddportfolioservice/controllers/ddportfolio.py:36
msgid "Debian Developer's Package Overview"
msgstr "Paketübersicht des Debian-Entwicklers"
#: ddportfolioservice/controllers/ddportfolio.py:37
msgid ""
"Debian Developer's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Paketübersicht des Debian-Entwicklers\n"
"... mit allen E-Mailadressen"
#: ddportfolioservice/controllers/ddportfolio.py:41
msgid "Bugs"
msgstr "Fehler"
#: ddportfolioservice/controllers/ddportfolio.py:42
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:46
msgid "bugs reported"
msgstr "Berichtete Fehler"
#: ddportfolioservice/controllers/ddportfolio.py:47
msgid "bugstats AKA <em>karma</em>"
msgstr "Fehlerstatistiken auch bekannt als <em>Karma</em>"
#: ddportfolioservice/controllers/ddportfolio.py:48
msgid "user tags"
msgstr "User Tags"
#: ddportfolioservice/controllers/ddportfolio.py:49
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:51
msgid "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"http://wiki.debian.org/WNPP\">WNPP</a>"
#: ddportfolioservice/controllers/ddportfolio.py:54
msgid "Build"
msgstr "Build"
#: ddportfolioservice/controllers/ddportfolio.py:55
msgid "buildd.d.o (note: co-maintainers <em>not</em> listed)"
msgstr "buildd.d.o (Anmerkung: Co-Maintainer werden <em>nicht</em> aufgeführt)"
#: ddportfolioservice/controllers/ddportfolio.py:57
msgid "igloo"
msgstr "Igloo"
#: ddportfolioservice/controllers/ddportfolio.py:58
msgid "svnbuildstat"
msgstr "SVN-Buildstat"
#: ddportfolioservice/controllers/ddportfolio.py:61
msgid "Quality Assurance"
msgstr "Qualitätssicherung"
#: ddportfolioservice/controllers/ddportfolio.py:62
msgid "lintian reports"
msgstr "Lintian-Berichte"
#: ddportfolioservice/controllers/ddportfolio.py:63
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:65
msgid "DEHS (Debian External Health Status)"
msgstr "DEHS (Debian External Health Status)"
#: ddportfolioservice/controllers/ddportfolio.py:68
msgid "Upload"
msgstr "Upload"
#: ddportfolioservice/controllers/ddportfolio.py:69
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:73
msgid "Mailing Lists"
msgstr "Mailinglisten"
#: ddportfolioservice/controllers/ddportfolio.py:74
msgid "lists.d.o"
msgstr "lists.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:75
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:76
msgid "gmane"
msgstr "Gmane"
#: ddportfolioservice/controllers/ddportfolio.py:79
msgid "Files"
msgstr "Dateien"
#: ddportfolioservice/controllers/ddportfolio.py:80
msgid "people.d.o"
msgstr "people.d.o"
#: ddportfolioservice/controllers/ddportfolio.py:81
msgid "oldpeople"
msgstr "oldpeople"
#: ddportfolioservice/controllers/ddportfolio.py:82
#: ddportfolioservice/controllers/ddportfolio.py:88
msgid "Alioth"
msgstr "Alioth"
#: ddportfolioservice/controllers/ddportfolio.py:85
msgid "Membership"
msgstr "Mitgliedschaft"
#: ddportfolioservice/controllers/ddportfolio.py:86
msgid "NM"
msgstr "NM"
#: ddportfolioservice/controllers/ddportfolio.py:87
msgid "DB"
msgstr "DB"
#: ddportfolioservice/controllers/ddportfolio.py:91
msgid "Miscellaneous"
msgstr "Sonstiges"
#: ddportfolioservice/controllers/ddportfolio.py:92
msgid "debtags"
msgstr "debtags"
#: ddportfolioservice/controllers/ddportfolio.py:93
msgid "links"
msgstr "Links"
#: 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 DD email address"
msgstr "Nicht-DD E-Mailadresse:"
#: ddportfolioservice/model/urlbuilder.py:45
msgid "Alioth user name"
msgstr "Alioth-Benutzername"
#: ddportfolioservice/model/urlbuilder.py:73
#, python-format
msgid "Missing input: %s"
msgstr "Fehlende Eingabe: %s"
#: ddportfolioservice/templates/base.mako:25
#: ddportfolioservice/templates/base.mako:33
msgid "Debian Developer Portfolio Service"
msgstr "Debian-Entwicklerportfolioservice"
#: ddportfolioservice/templates/base.mako:31
msgid "Debian Logo"
msgstr "Debian-Logo"
#: ddportfolioservice/templates/base.mako:34
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 Developer'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-Entwickler und Paketbetreuer"
" erzeugt werden."
#: ddportfolioservice/templates/base.mako:40
msgid "AGPL - Free Software"
msgstr "AGPL - Freie Software"
#: ddportfolioservice/templates/base.mako:42
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=\"http://ddportfolio.debian.net/gitweb?p=ddportfolioservice.git;a=summary\">download"
" the source code</a> using <a href=\"http://git.or.cz\">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 mittels "
"<a href=\"http://git.or.cz\">git</a> <a "
"href=\"http://ddportfolio.debian.net/gitweb?p=ddportfolioservice.git;a=summary\">den"
" Quelltext herunterladen</a>."
#: ddportfolioservice/templates/base.mako:43
msgid "Copyright &copy; 2009 Jan Dittberner"
msgstr "Copyright &copy; 2009 Jan Dittberner"
#: ddportfolioservice/templates/showform.mako:23
msgid "Enter your personal information"
msgstr "Eingabe der persönlichen Informationen"
#: ddportfolioservice/templates/showform.mako:30
#: ddportfolioservice/templates/showurls.mako:27
msgid "Debian Developer Portfolio"
msgstr "Debian-Entwicklerportfolio"
#: ddportfolioservice/templates/showform.mako:36
msgid "Email address:"
msgstr "E-Mailadresse:"
#: ddportfolioservice/templates/showform.mako:49
msgid "Name:"
msgstr "Name:"
#: ddportfolioservice/templates/showform.mako:58
msgid "GPG fingerprint:"
msgstr "GPG-Fingerabdruck:"
#: ddportfolioservice/templates/showform.mako:72
msgid "Debian user name:"
msgstr "Debian-Benutzername:"
#: ddportfolioservice/templates/showform.mako:86
msgid "Non DD email address:"
msgstr "Nicht-DD-E-Mailadresse"
#: ddportfolioservice/templates/showform.mako:100
msgid "Alioth user name:"
msgstr "Alioth-Benutzername:"
#: ddportfolioservice/templates/showform.mako:111
msgid "Output format:"
msgstr "Ausgabeformat:"
#: ddportfolioservice/templates/showform.mako:117
msgid "HTML"
msgstr "HTML"
#: ddportfolioservice/templates/showform.mako:119
msgid "JSON"
msgstr "JSON"
#: ddportfolioservice/templates/showform.mako:121
msgid "Build DD Portfolio URLs"
msgstr "Debian-Entwicklerportfolio-URLs bauen"
#: ddportfolioservice/templates/showurls.mako:23
msgid "Your personal links"
msgstr "Ihre personalisierten Links"
#: ddportfolioservice/templates/showurls.mako:30
msgid "Usage"
msgstr "Verwendung"
#: ddportfolioservice/templates/showurls.mako:30
msgid "URL"
msgstr "URL"
#: ddportfolioservice/templates/showurls.mako:40
msgid "Error during URL creation:"
msgstr "Fehler bei der URL-Erzeugung:"
#: ddportfolioservice/templates/showurls.mako:61
msgid "Restart"
msgstr "Neu beginnen"

View file

@ -1,22 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service lib 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

@ -1,36 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service application Globals
# 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/>.
#
"""The application's Globals object"""
from pylons import config
class Globals(object):
"""Globals acts as a container for objects available throughout the
life of the application
"""
def __init__(self):
"""One instance of Globals is created during application
initialization and is available during requests via the 'g'
variable
"""
pass

View file

@ -1,56 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service base controller
# 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/>.
#
"""The base Controller API
Provides the BaseController class for subclassing, and other objects
utilized by Controllers.
"""
from pylons import c, cache, config, g, request, response, session
from pylons.controllers import WSGIController
from pylons.controllers.util import abort, etag_cache, redirect_to
from pylons.decorators import jsonify, validate
from pylons.i18n import _, ungettext, N_, add_fallback
from pylons.templating import render
import ddportfolioservice.lib.helpers as h
import ddportfolioservice.model as model
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)
# Include the '_' function in the public names
__all__ = [__name for __name in locals().keys() if not __name.startswith('_') \
or __name == '_']

View file

@ -1,32 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service webhelpers
# 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/>.
#
"""Helper functions
Consists of functions to typically be used within templates, but also
available to Controllers. This module is available to both as 'h'.
"""
from webhelpers import *
from webhelpers.html.tags import *
from webhelpers.text import *
from webhelpers.textile import *
from routes.util import *

View file

@ -1,22 +0,0 @@
# -*- 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

@ -1,77 +0,0 @@
#
# Configuration for DDPortfolio service
# 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/>.
#
[DEFAULT]
keyring.dir=/usr/share/keyrings
urlbuilder.sections=overview,bugs,build,qa,upload,lists,files,membership,
miscellaneous
[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
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&amp;search=search
wnpp.pattern=http://qa.debian.org/developer.php?wnpp=%(email)s
[build]
urls=buildd,igloo,svnbuildstat
buildd.pattern=http://buildd.debian.org/pkg.cgi?maint=%(email)s
igloo.pattern=http://oldpeople.debian.org/~igloo/status.php?email=%(email)s&amp;thin=on
svnbuildstat.pattern=http://svnbuildstat.debian.net/packages/list/%(email)s
[qa]
urls=lintian,lintianfull,dehs
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
[upload]
urls=keylog
keylog.pattern=http://merkel.debian.org/~enrico/keylog/%(gpgfp)s.html
[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.*
[files]
urls=people,oldpeople,alioth
people.pattern=http://people.debian.org/~%(username)s/
oldpeople.pattern=http://oldpeople.debian.org/~%(username)s/
alioth.pattern=http://alioth.debian.org/~%(aliothusername)s/
[membership]
urls=nm,db,alioth
nm.pattern=https://nm.debian.org/nmstatus.php?email=%(nonddemail)s
db.pattern=http://db.debian.org/search.cgi?uid=%(username)s&amp;dosearch=Search
alioth.pattern=http://alioth.debian.org/users/%(aliothusername)s/
[miscellaneous]
urls=debtags,links
debtags.pattern=http://debtags.alioth.debian.org/todo.html?maint=%(email)s
links.pattern=http://www.google.com/search?hl=en&amp;lr=&amp;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&amp;btnG=Search

View file

@ -1,42 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service form handling model
# 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/>.
#
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(40),
formencode.validators.MaxLength(40))
username = formencode.validators.PlainText()
nonddemail = formencode.validators.Email()
aliothusername = formencode.validators.PlainText()
mode = formencode.validators.OneOf([u'json', u'html'], not_empty=True)
class DDDataRequest(formencode.Schema):
"""Validation schema for DDData request."""
allow_extra_fields = False
email = formencode.validators.Email(not_empty=True)

View file

@ -1,69 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service key finder module
# 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/>.
#
"""
This module provides tools for finding PGP key information from a
given keyring.
"""
db = None
def _get_keyring_cache():
global db
if not db:
import anydbm
import pkg_resources
import os.path
filename = pkg_resources.resource_filename(__name__,
'keyringcache')
assert os.path.exists(filename) and os.path.isfile(filename)
db = anydbm.open(filename, 'r')
return db
def _get_cached(cachekey):
cache = _get_keyring_cache()
if cachekey in cache:
return cache[cachekey].split(':')
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

@ -1,131 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service application key ring analyzer tool
# 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/>.
#
"""
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
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'))
keyrings = glob.glob(my_config.get('DEFAULT', 'keyring.dir') +
'/*.gpg')
keyrings.extend(glob.glob(my_config.get('DEFAULT', 'keyring.dir') +
'/*.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():
contents = os.popen("gpg --no-default-keyring \
--no-expensive-trust-checks \
--keyring %s --list-keys \
--with-colons --fingerprint" % (keyring))
fpr = None
entry = None
lastpub = None
for line in contents.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)
contents.close()
db = anydbm.open(pkg_resources.resource_filename(__name__,
'keyringcache'), 'c')
for key in resultdict:
db[key] = ":".join(resultdict[key])
db.close()
if __name__ == '__main__':
process_keyrings()

View file

@ -1,75 +0,0 @@
# -*- python -*-
# -*- coding: utf8 -*-
#
# DDPortfolio service url builder
# 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/>.
#
"""
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 DD email address'),
'aliothusername' : N_('Alioth user name'),
}
def build_urls(fields):
"""Build personalized URLs using the developer information in
fields."""
data = []
qfields = dict([(key, quote_plus(fields[key].encode('utf8'))) \
for key in fields if fields[key] is not None])
if 'gpgfp' not in qfields:
fpr = keyfinder.getFingerprintByEmail(fields['email'].encode('utf8'))
if fpr:
qfields['gpgfp'] = fpr[0]
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 url in my_config.get(section, 'urls').split(','):
if my_config.has_option(section, url + '.pattern'):
try:
data.append(
['url', section, url,
my_config.get(section, url + '.pattern',
False, qfields)])
except InterpolationMissingOptionError, e:
data.append(['error', section, url,
_('Missing input: %s') % \
_(_FIELDNAMES_MAP[e.reference])])
return data

View file

@ -1,47 +0,0 @@
<!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 (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/>.
</%doc>
<html>
<head>
<title>${_('Debian Developer Portfolio Service')}${self.titleaddon()}</title>
${h.stylesheet_link(h.url_for('/stylesheets/style.css'))}
${self.extrahead()}
</head>
<body>
<div id="header">
${h.image(h.url_for('/images/openlogo-100.jpg'), _('Debian Logo'), 100, 100,
id='debianlogo')}
<h1>${_('Debian Developer Portfolio Service')}</h1>
<p>${_('''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 Developer's or package maintainer's information regarding Debian.''')}</p>
</div>
<div id="content">
${self.body()}
</div>
<div id="footer">
${h.image(h.url_for('/images/agplv3-88x31.png'), _('AGPL - Free Software'), 88, 31,
id='agpllogo')}
<p>${_('''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="http://ddportfolio.debian.net/gitweb?p=ddportfolioservice.git;a=summary">download the source code</a> using <a href="http://git.or.cz">git</a>.''')}</p>
<p>${_('''Copyright &copy; 2009 Jan Dittberner''')}</p>
</div>
</body>
</html>
<%def name="extrahead()"></%def>

View file

@ -1,124 +0,0 @@
<%inherit file="base.mako" />
<%doc>
Template for the data input form.
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/>.
</%doc>
<%def name="titleaddon()">
- ${_('Enter your personal information')}
</%def>
<%def name="extrahead()">${h.javascript_link('/javascript/jquery/jquery.js',
h.url_for(controller='showformscripts',
action='index'))}</%def>
${h.form(h.url_for(action='urllist'), method='get')}
<fieldset id="ddportfolio">
<legend>${_('Debian Developer 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']}</span>
% endif
</label><br />
${h.text('email', request.params.get('email', None), id='email')}<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']}</span>
% endif
</label><br />
${h.text('name', request.params.get('name', None), id='name')}<br />
</div>
<div id="gpgfpfield" class="hidden">
<label for="gpgfp">${_('GPG fingerprint:')}
% if 'gpgfp' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['gpgfp']}</span>
% endif
</label><br />
${h.text('gpgfp', request.params.get('gpgfp', None),
id='gpgfp', readonly='readonly')}<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']}</span>
% endif
</label><br />
${h.text('username', 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 DD email address:')}
% if 'nonddemail' in c.messages['errors']:
<br />
<span class="errormsg">${c.messages['errors']['nonddemail']}</span>
% endif
</label><br />
${h.text('nonddemail', 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']}</span>
% endif
</label><br />
${h.text('aliothusername', request.params.get('username', None),
id='aliothusername')}<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']}</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 DD Portfolio URLs'))}
</div>
</fieldset>
${h.end_form()}

View file

@ -1,78 +0,0 @@
## -*- coding: utf-8 -*-
<%doc>
Helper JavaScript for the data input form.
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/>.
</%doc>
function updateFields(data, textStatus) {
if (data.isdd == 1) {
$('#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);
$('#namefield').show();
$('#gpgfpfield').show();
$('#usernamefield').show();
$('#nonddemailfield').show();
$('#aliothusernamefield').show();
$('#nonddemail').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();
$('#name').focus().select();
}
}
function onBlurEmail() {
$.ajax({
'url' : '${h.url_for(action='fetchdddata')}',
'data' : {'email' : $('#email').attr('value')},
'dataType' : 'json',
'success' : updateFields,
'error' : function(request, textStatus, errorThrown) {
$('#email').focus();
}
});
}
$(document).ready(function() {
var fields = new Array(
'#namefield', '#usernamefield',
'#nonddemailfield', '#aliothusernamefield');
for (var index in fields) {
if (!$(fields[index]).hasClass('witherrors')) {
$(fields[index]).hide();
}
}
$('#email').blur(onBlurEmail).focus();
});

View file

@ -1,61 +0,0 @@
<%inherit file="base.mako" />
<%doc>
Template for the url output page.
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/>.
</%doc>
<%def name="titleaddon()">
- ${_('Your personal links')}
</%def>
% if c.urldata:
<fieldset id="ddportfolio">
<legend>${_('Debian Developer 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.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.textile(row[4])}</td>
<td>${h.link_to(h.truncate(row[3], length=120), row[3])}</td>
</tr>
<%
if urlclass == 'odd':
urlclass = 'even'
else:
urlclass = 'odd'
%>
% endif
% endfor
</tbody>
</table>
</fieldset>
% endif
<p>${h.link_to(_('Restart'), h.url_for(action='index'))}</p>

View file

@ -1,62 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service 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/>.
#
"""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
import pkg_resources
import paste.fixture
import paste.script.appinstall
from paste.deploy import loadapp
from routes import url_for
__all__ = ['url_for', 'TestController']
here_dir = os.path.dirname(os.path.abspath(__file__))
conf_dir = os.path.dirname(os.path.dirname(here_dir))
sys.path.insert(0, conf_dir)
pkg_resources.working_set.add_entry(conf_dir)
pkg_resources.require('Paste')
pkg_resources.require('PasteScript')
test_file = os.path.join(conf_dir, 'test.ini')
cmd = paste.script.appinstall.SetupCommand('setup-app')
cmd.run([test_file])
class TestController(TestCase):
def __init__(self, *args, **kwargs):
wsgiapp = loadapp('config:test.ini', relative_to=conf_dir)
self.app = paste.fixture.TestApp(wsgiapp)
TestCase.__init__(self, *args, **kwargs)

View file

@ -1,22 +0,0 @@
# -*- 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

@ -1,29 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service DdportfolioController test
# 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/>.
#
from ddportfolioservice.tests import *
class TestDdportfolioController(TestController):
def test_index(self):
response = self.app.get(url_for(controller='ddportfolio'))
# Test response...

View file

@ -1,7 +0,0 @@
from ddportfolioservice.tests import *
class TestShowformscriptsController(TestController):
def test_index(self):
response = self.app.get(url_for(controller='showformscripts'))
# Test response...

View file

@ -1,22 +0,0 @@
# -*- 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

@ -1,36 +0,0 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service websetup
# 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/>.
#
"""Setup the ddportfolioservice application"""
import logging
from paste.deploy import appconfig
from pylons import config
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)
load_environment(conf.global_conf, conf.local_conf)

View file

@ -0,0 +1,31 @@
# -*- 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

@ -0,0 +1,73 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service views
#
# Copyright © 2015-2020 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()])
gpgfp = StringField('gpgfp', 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

@ -0,0 +1 @@
keyringcache

View file

@ -0,0 +1,26 @@
# -*- 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

@ -0,0 +1,57 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service data builder
#
# 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/>.
#
"""
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
[('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,114 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service key finder module
#
# 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/>.
#
"""
This module provides tools for finding PGP key information from a
given keyring.
"""
import logging
import time
import sys
db = None
cachetimestamp = 0
def _get_keyring_cache():
global db, cachetimestamp
if db is None or (time.time() - cachetimestamp) > 86300:
import dbm
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 + '.db') and
os.path.isfile(filename + '.db')
)
db = dbm.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].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

@ -0,0 +1,185 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service application key ring analyzer tool
#
# 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/>.
#
"""
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 dbm
import pkg_resources
import glob
import configparser
import os
import os.path
import logging
import subprocess
import sys
import email.utils
CONFIG = configparser.ConfigParser()
def _get_keyrings():
"""
Gets the available keyring files from the keyring directory
configured in portfolio.ini.
"""
keyringdir = os.path.expanduser(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.
"""
# 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)
resultdict = {}
def _get_canonical(key):
if not key in resultdict:
resultdict[key] = []
return key
def _add_to_result(key, newvalue):
logging.debug("adding %s: %s", key, newvalue)
thekey = _get_canonical(key)
if newvalue not in resultdict[thekey]:
resultdict[thekey].append(newvalue)
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):
# 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)
retcode = proc.wait()
if retcode != 0:
logging.error("subprocess ended with return code %d", retcode)
db = dbm.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)
CONFIG.read_string(pkg_resources.resource_string(
__name__, 'portfolio.ini').decode('utf8'))
gpghome = os.path.expanduser(CONFIG.get('DEFAULT', 'gnupghome'))
if not os.path.isdir(gpghome):
os.makedirs(gpghome, 0o700)
process_keyrings()

View file

@ -0,0 +1,124 @@
#
# Configuration for Debian Member Portfolio Service
#
# Copyright © 2009-2020 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,patchtracker,dmd,duck,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,webid,salsa,wiki,forum
nm.pattern=https://nm.debian.org/public/nmstatus/%(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=%(gpgfp)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

@ -0,0 +1,114 @@
# -*- python -*-
# -*- coding: utf8 -*-
#
# Debian Member Portfolio Service url builder
#
# Copyright © 2009-2020 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
import pkg_resources
from debianmemberportfolio.model import keyfinder
from urllib.parse import quote_plus
from flask_babel import gettext as _, lazy_gettext as N_
my_config = ConfigParser()
my_config.read_file(UTF8StreamReader(
pkg_resources.resource_stream(__name__, 'portfolio.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'),
'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 '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')
return qfields
def build_urls(fields):
"""Build personalized URLs using the developer information in
fields."""
data = []
qfields = _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=qfields)])
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

@ -0,0 +1 @@
javascript

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Before After
Before After

View file

@ -0,0 +1,2 @@
User-Agent: *
Allow: /

View file

@ -0,0 +1,48 @@
<!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-2020 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-2020 Jan Dittberner') }}</p>
</div>
<script type="text/javascript">
var flattr_url = '{{ request.scheme }}://portfolio.debian.net/';
</script>
<script src="{{ request.scheme }}://api.flattr.com/js/0.6/load.js?mode=auto&amp;button=compact" type="text/javascript"></script>
</body>
</html>

View file

@ -0,0 +1,103 @@
{% extends "base.html" %}
{#
Template for the data input form.
Copyright © 2009-2020 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="gpgfpfield"{% if form.gpgfp.errors %} class="witherrors"{% endif %}>
<label for="gpgfp">{{ _('GPG fingerprint:') }}{% if form.gpgfp.errors %}<br />
<span class="errormsg">{{ form.gpgfp.errors|join(', ') }}</span>
{% endif %}
</label><br />
{{ form.gpgfp }}
</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

@ -0,0 +1,119 @@
{# vim: ft=jinja
Helper JavaScript for the data input form.
Copyright © 2009-2020, 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', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
var maskedfielddivs = new Array(
'#namefield', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
var allfielddivs = new Array(
'#namefield', '#gpgfpfield', '#usernamefield', '#nonddemailfield',
'#salsausernamefield', '#wikihomepagefield', '#forumsidfield');
function updateFields(data, textStatus) {
if (data.type == 2) { // DD
$('#name').prop('value', data.name).prop('readonly', 'readonly');
$('#gpgfp').prop('value', data.gpgfp);
$('#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();
$('#gpgfpfield').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');
$('#gpgfp').prop('value', data.gpgfp);
$('#username').prop('value', '');
$('#nonddemail').prop('value', data.email).focus();
$('#wikihomepage').prop('value', data.wikihomepage);
$('#namefield').show();
$('#gpgfpfield').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', '');
$('#gpgfp').prop('value', '');
$('#usernamefield').hide();
$('#gpgfpfield').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

@ -0,0 +1,61 @@
{% 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

@ -0,0 +1,425 @@
# 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: 2020-10-27 08:36+0100\n"
"PO-Revision-Date: 2020-10-27 08:37+0100\n"
"Last-Translator: Jan Dittberner <jan@dittberner.info>\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.8.0\n"
"X-Generator: Poedit 2.4.1\n"
#: debianmemberportfolio/forms.py:64
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:64
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Überblick"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Paketübersicht des Debian-Mitglieds"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Fehler"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "Berichtete Fehler"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "User Tags"
#: debianmemberportfolio/views.py:53
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)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "Beitragender zu Fehlern"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Graph der Entwicklung offener Fehlerberichte über ein Jahr"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Build"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "Igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Qualitätssicherung"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "Maintainer Dashboard"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "Lintian-Berichte"
#: debianmemberportfolio/views.py:68
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:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debian Nachverfolgungssystem für Patches"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian URL-Prüfer"
#: debianmemberportfolio/views.py:73
msgid "Debian Janitor"
msgstr "Debian Janitor"
#: debianmemberportfolio/views.py:76
msgid "Mailing Lists"
msgstr "Mailinglisten"
#: debianmemberportfolio/views.py:77
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:78
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Dateien"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:86
msgid "Membership"
msgstr "Mitgliedschaft"
#: debianmemberportfolio/views.py:87
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:88
msgid "DB information via finger"
msgstr "DB-Informationen per finger"
#: debianmemberportfolio/views.py:89
msgid "DB information via HTTP"
msgstr "DB-Informationen per HTTP"
#: debianmemberportfolio/views.py:90
msgid "FOAF profile"
msgstr "FOAF-Profil"
#: debianmemberportfolio/views.py:91
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:92
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:93
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:96
msgid "Miscellaneous"
msgstr "Sonstiges"
#: debianmemberportfolio/views.py:97
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:98
msgid "Planet Debian (name)"
msgstr "Planet Debian (Name)"
#: debianmemberportfolio/views.py:99
msgid "Planet Debian (username)"
msgstr "Planet Debian (Benutzername)"
#: debianmemberportfolio/views.py:100
msgid "links"
msgstr "Links"
#: debianmemberportfolio/views.py:101
msgid "Debian website"
msgstr "Debian Webseite"
#: debianmemberportfolio/views.py:102
msgid "Debian search"
msgstr "Debian-Suche"
#: debianmemberportfolio/views.py:103
msgid "GPG public key via finger"
msgstr "öffentlicher GPG-Schlüssel per finger"
#: debianmemberportfolio/views.py:104
msgid "GPG public key via HTTP"
msgstr "öffentlicher GPG-Schlüssel per HTTP"
#: debianmemberportfolio/views.py:105
msgid "NM, AM participation"
msgstr "NM-, AM-Mitwirkung"
#: debianmemberportfolio/views.py:106
msgid "Contribution information"
msgstr "Debian Contributor-Informationen"
#: debianmemberportfolio/views.py:107
msgid "Repology information"
msgstr "Repology-Informationen"
#: debianmemberportfolio/views.py:110
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Per ssh erreichbare Informationen (für Debian Mitglieder)"
#: debianmemberportfolio/views.py:111
msgid "owned debian.net domains"
msgstr "Besitz von debian.net-Domains"
#: debianmemberportfolio/views.py:112
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:114
msgid "Group membership information"
msgstr "Information über Gruppenmitgliedschaften"
#: debianmemberportfolio/views.py:117
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:118
msgid "Available patches from Ubuntu"
msgstr "Verfügbare Patches aus Ubuntu"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "E-Mailadresse"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Name"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "GPG-Fingerabdruck"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian-Benutzername"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Nicht-Debian-E-Mailadresse"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsa-Benutzername"
#: debianmemberportfolio/model/urlbuilder.py:109
#: debianmemberportfolio/model/urlbuilder.py:113
#, 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."
# | msgid "Copyright © 2009-2018 Jan Dittberner"
#: debianmemberportfolio/templates/base.html:41
#| msgid "Copyright © 2009-2019 Jan Dittberner"
msgid "Copyright © 2009-2020 Jan Dittberner"
msgstr "Copyright © 2009-2020 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 "GPG fingerprint:"
msgstr "GPG-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

@ -0,0 +1,411 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2019-06-26 21:00+0000\n"
"Last-Translator: THANOS SIOURDAKIS <siourdakisthanos@gmail.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/el/>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.7.1-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Επισκόπηση"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr ""
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr ""
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr ""
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr ""
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr ""
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr ""
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr ""
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr ""
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: debianmemberportfolio/views.py:116
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr ""
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 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 "GPG 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 "Alioth user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:106
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 ""

View file

@ -0,0 +1,437 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2019-12-19 04:21+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Visión general"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Visión general de paquetes del miembro de Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Fallos"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "fallos informados"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "etiquetas de usuario"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"todos los mensajes (esto es, búsqueda de texto completo del nombre de "
"desarrollador/a en todos los registros de informes)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "contacto para fallos"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "gráfico de histórico anual de informes de error abiertos"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Generación de paquetes"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Control de calidad"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "tablero de responsable"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "informes de lintian"
#: debianmemberportfolio/views.py:68
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:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Sistema de control de parches de Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Comprobador de URL de Debian (DUCK)"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Listas de correo"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Archivos"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Membresía"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "Información de BD a través de Finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "Información de BD a través de HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "Perfil de FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Foro"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Varios"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nombre)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (nombre de usuario)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "enlaces"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Sitio web de Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Búsqueda en Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Clave pública de GPG a través de Finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Clave pública de GPG a través de HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "Participación en NM y AM"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Información de contribución"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr "Información de Repology"
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Información accesible a través de SSH (para miembros de Debian)"
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr "titularidad de dominios debian.net"
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr "Información de membresía a grupos"
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr "Parches de Ubuntu disponibles"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Dirección de correo"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nombre"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Huella GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Nombre de usuario de Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Direcciones de correo no de Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Nombre de usuario de Salsa"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Nombre de usuario de Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Derechos de autor © 2009-2018 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 "GPG fingerprint:"
msgstr "Huella GPG:"
#: 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 "Alioth user name:"
msgstr "Nombre de usuario de Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nombre de usuario del wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Identificador de usuario del foro:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Formato de salida:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,430 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2019-09-17 14:24+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.9-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Vue d'ensemble"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Vue d'ensemble des paquets du membre Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Bogues"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "Bogues rapportés"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "Tags utilisateur"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"Tous les messages (c-à-d, recherche plein texte sur le nom du développeur dans "
"tous les journaux de bogue)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "Correspondant pour les bogues"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Graphique de l'évolution des bogues ouverts sur l'année écoulée"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Construire"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Assurance qualité"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "tableau de bord du mainteneur"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "Rapports lintian"
#: debianmemberportfolio/views.py:68
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:70
msgid "piuparts"
msgstr "Piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Système de suivi des patchs de Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Vérificateur d'Url Debian"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Listes de diffusion"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "Gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Fichiers"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "anciens"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Adhésion"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "BD dinformations via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "BD dinformations via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "profil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Divers"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "Debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nom)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (nom dutilisateur)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "Liens"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Site web de Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Recherche Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Clef GPG publique via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Clef GPG publique via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "participation NM, AM"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Informations de contribution"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informations accessibles via ssh (pour les membres de Debian)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "Propriété des domaines debian.net"
#: debianmemberportfolio/views.py:113
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:115
msgid "Group membership information"
msgstr "Information sur ladhésion de groupe"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "Rustines dUbuntu disponibles"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Courriel"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nom"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Empreinte GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Nom dutilisateur Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Courriel hors Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Nom dutilisateur Salsa"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Nom dutilisateur Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Copyright © 2009-2018 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 "GPG fingerprint:"
msgstr "Empreinte GPG :"
#: 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 "Alioth user name:"
msgstr "Nom dutilisateur Alioth :"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nom dutilisateur Wiki :"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Numéro dutilisateur Forum :"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Format de sortie :"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,435 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2018-02-09 10:29+0100\n"
"Last-Translator: Jan Dittberner <jan@dittberner.info>\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.5.0\n"
"X-Generator: Poedit 1.8.11\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Gambaran Umum"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Gambaran Umum Paket Anggota Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Kutu"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "melaporkan bug"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "label pengguna"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"semua pesan (yaitu, pencarian teks lengkap untuk nama pengembang pada semua "
"catatan bug)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "koresponden untuk bug"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "grafik perkembangan laporan bug terbuka lebih dari setahun"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Bangun"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Jaminan Mutu"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "dasbor maintainer"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "laporan lintian"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "seluruh pesan lintian (i.e. termasuk pesan \"info\"-level)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "sistem pelacakan patch Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian Url ChecKer"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Milis"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Berkas-berkas"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Keanggotaan"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "informasi DB melalui finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "informasi DB melalui HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "profil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Lain-Lain"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nama)"
#: debianmemberportfolio/views.py:101
#, fuzzy
msgid "Planet Debian (username)"
msgstr "Planet Debian (nama pengguna)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "tautan"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "website Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "pencarian Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "kunci publik GPG melalui finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "kunci publik GPG melalui HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "partisipasi NM, AM"
#: debianmemberportfolio/views.py:108
#, fuzzy
msgid "Contribution information"
msgstr "Informasi kontribusi"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informasi dicapai melalui ssh (untuk Anggota Debian)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "domain debian.net sendiri"
#: debianmemberportfolio/views.py:113
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:115
msgid "Group membership information"
msgstr "Informasi keanggotaan kelompok"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "Tambalan dari Ubuntu yang tersedia"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Alamat Email"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nama"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "sidik jari GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "nama pengguna Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Selain alamat email Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
#, fuzzy
msgid "Salsa user name"
msgstr "nama pengguna Salsa"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "nama pengguna Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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
#, fuzzy, 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-2018 Jan Dittberner"
msgstr "Hak Cipta © 2009-2018 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 "GPG fingerprint:"
msgstr "sidik jari GPG:"
#: 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
#, fuzzy
msgid "Salsa user name:"
msgstr "Nama pengguna Salsa:"
#: debianmemberportfolio/templates/showform.html:78
msgid "Alioth user name:"
msgstr "Nama pengguna Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nama pengguna Wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "ID pengguna Forum:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Format Keluaran:"
#: debianmemberportfolio/templates/showform.html:106
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
#, fuzzy
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

@ -0,0 +1,420 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2020-09-27 13:40+0000\n"
"Last-Translator: Shuji Sado <sado@osdn.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "概要"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Debianメンバーのパッケージ概要"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debianメンバーのパッケージ概要\n"
"... 全メールアドレス表示"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "バグ"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "報告したバグ"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "ユーザータグ"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr "すべてのメッセージ (i.e.、全てのバグのログの開発者名による全文検索)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "1年間にオープンしたバグの履歴グラフ"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "ビルド"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "品質保証"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "メンテナダッシュボード"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "Lintianレポート"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debianパッチ追跡システム"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian Urlチェッカー"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "メーリングリスト"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "ファイル"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "メンバーシップ"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "FOAF プロファイル"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "フォーラム"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "その他"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (名前)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (ユーザー名)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "リンク"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Debian webサイト"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Debian検索"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "finger経由のGPG公開鍵"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "HTTP経由のGPG公開鍵"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "貢献情報"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr "Repology情報"
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr ""
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Emailアドレス"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "名前"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian ユーザー名"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Debian以外のメールアドレス"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsaユーザー名"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Aliothユーザー名"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 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 "GPG 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 "Alioth user name:"
msgstr "Aliothユーザー名:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Wikiユーザー名:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "フォーラムのユーザーID:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:106
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 ""

View file

@ -0,0 +1,413 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2019-12-14 20:21+0000\n"
"Last-Translator: Prachi Joshi <josprachi@yahoo.com>\n"
"Language-Team: Marathi <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/mr/>\n"
"Language: mr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "एचटीएमएल"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "आढावा"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "डेबियन सदस्याचे पॅकेज विहंगावलोकन"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"डेबियन सदस्याचे पॅकेज विहंगावलोकन\n"
"... सर्व ईमेल पत्ते दर्शवित आहे"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "बग"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "बग नोंदवले"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "वापरकर्ता टॅग"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr "सर्व संदेश (उदा. सर्व बग लॉगवरील विकसकाच्या नावासाठी संपूर्ण मजकूर शोध)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "बग साठी संवाददाता"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "एक वर्षाचा ओपन बग हिस्ट्री ग्राफ"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "बांधा"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "इग्लू"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "गुणवत्ता हमी"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "देखभालकर्ता डॅशबोर्ड"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr ""
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr ""
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr ""
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: debianmemberportfolio/views.py:116
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr ""
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 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 "GPG 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 "Alioth user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:106
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 ""

View file

@ -0,0 +1,429 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2020-08-14 22:32+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/nb_NO/>\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.2-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Oversikt"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Debian-medlemmers pakkeoversikt"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debianmedlemmers pakkeoversikt\n"
"… viser alle e-postadresser"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "Feil"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "feil rapportert"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "brukermerker"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"alle meldinger (med andre ord, fulltekstsøk etter utviklernavnet i alle "
"feilrapporter)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "korrespondent for feilrapporter"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Graf over feilrapporter som har vært åpen mer enn et år"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Bygg"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "iglo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Kvalitetssikring"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "Vedlikeholdersoversikt"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "lintian-rapporter"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "Komplette lintian-rapporter (dvs. også meldinger med nivå «info»)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debians sporingssystem for patcher"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian URL-sjekker"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "E-postlister"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Filer"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Medlemskap"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "DB-informasjon via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "DB-informasjon via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "FOAF-profil"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Diverse"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (navn)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (brukernavn)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "lenker"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Debian-nettsiden"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Debian-søk"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Offentlig GPG-nøkkel via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Offentlig GPG-nøkkel via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "NM-, AM-deltagelse"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Bidragsinformasjon"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informasjon tilgjengelig via ssh (for Debian-medlemmer)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "eide debian.net -domener"
#: debianmemberportfolio/views.py:113
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:115
msgid "Group membership information"
msgstr "Gruppemedlemskapsinformasjon"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "Tilgjengelige programfikser fra Ubuntu"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "E-postadresse"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Navn"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "GPG-fingeravtrykk"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian-brukernavn"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "E-postadresser utenom Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsa-brukernavn"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Alioth-brukernavn"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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 igjennom kildekoden</a> eller klode 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 a 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-2018 Jan Dittberner"
msgstr "Kopirett © 2009-2018 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 "GPG fingerprint:"
msgstr "GPG-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 "Alioth user name:"
msgstr "Alioth-brukernavn:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Wiki-brukernavn:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Forum-brukerid:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Fremvisningsformat:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,414 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2019-03-18 14:03+0000\n"
"Last-Translator: Frans Spiesschaert <frans.spiesschaert@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.6-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Overzicht"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Pakketoverzicht van Debian-leden"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:47
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\n"
"<a href=\"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=430986\""
">#430986</a>"
#: debianmemberportfolio/views.py:51
msgid "bugs reported"
msgstr "gerapporteerde bugs"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "gebruikerslabels"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"alle berichten (d.w.z. zoeken in volledige tekst op de naam van de "
"ontwikkelaar in alle buglogs)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "correspondent voor bugs"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "grafiek van de evolutie van bugs die één jaar openstaan"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Bouwen"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Kwaliteitsverzekering"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "beheerdersinstrumentenbord"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "lintian-rapporten"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"volledige lintian-rapporten (d.w.z. inclusief berichten van niveau \"info\")"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debian patchvolgsysteem"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian URL-controle"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Mailinglijsten"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Bestanden"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oud-medewerkers"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Lidmaatschap"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "DB-informatie via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "DB-informatie via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "FOAF-profiel"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Diversen"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (naam)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (gebruikersnaam)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "links"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Debian-website"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Debian-zoeken"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "GPG openbare sleutel via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "GPG openbare sleutel via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "NM, AM-deelname"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Bijdrage-informatie"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Via ssh toegankelijke informatie (voor Debian-leden)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "debian.net-domeinnamen in eigendom"
#: debianmemberportfolio/views.py:113
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>-database-informatie"
#: debianmemberportfolio/views.py:115
msgid "Group membership information"
msgstr "Informatie over groepslidmaatschap"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "Beschikbare patches van Ubuntu"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "E-mailadres"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Naam"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "GPG-vingerafdruk"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian-gebruikersnaam"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "E-mailadres buiten Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsa-gebruikersnaam"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Alioth-gebruikersnaam"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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 "Portfoliodienst van 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-2018 Jan Dittberner"
msgstr "Copyright © 2009-2018 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 lid van Debian"
#: debianmemberportfolio/templates/showform.html:31
msgid "Email address:"
msgstr "E-mailadres:"
#: debianmemberportfolio/templates/showform.html:40
msgid "Show all form fields"
msgstr "Alle velden van het formulier weergeven"
#: debianmemberportfolio/templates/showform.html:43
msgid "Name:"
msgstr "Naam:"
#: debianmemberportfolio/templates/showform.html:50
msgid "GPG fingerprint:"
msgstr "GPG-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 "Alioth user name:"
msgstr "Alioth-gebruikersnaam:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Wiki-gebruikersnaam:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Forum-gebruikersid:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Uitvoerformaat:"
#: debianmemberportfolio/templates/showform.html:106
msgid "Build Debian Member Portfolio URLs"
msgstr "URL's bouwen voor het Debian-lid"
#: debianmemberportfolio/templates/showurls.html:21
msgid "Your personal links"
msgstr "Uw 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 de URL-creatie:"
#: debianmemberportfolio/templates/showurls.html:59
msgid "Restart"
msgstr "Herbeginnen"

View file

@ -0,0 +1,412 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2020-10-27 06:59+0000\n"
"Last-Translator: Jan Dittberner <jandd@debian.org>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.3.2-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Przegląd"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr ""
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "Bugi"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr ""
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr ""
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr ""
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr ""
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr ""
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr ""
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr ""
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr ""
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr ""
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr ""
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr ""
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Pliki"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "profil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: debianmemberportfolio/views.py:116
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr ""
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 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 "GPG 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 "Alioth user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:106
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 ""

View file

@ -0,0 +1,434 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2020-09-22 18:40+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/pt/>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "Bugs reportados"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "Tags de utilizador"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"Todas as mensagens (Ex. pesquisa completa do texto para o nome do "
"programador em todos os logs de bug)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "correspondente para bugs"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Histórico gráfico de bugs abertos há um ano"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Construção"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "relatórios lintian"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Sistema de rastreamento de patches Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Validador de Url do Debian"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Ficheiros"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "Infomações DB via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "Informações DB via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "perfil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Miscelânea"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "ligações"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Site do Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Chave pública GPG via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Chave pública GPG via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr "Informação sobre Repology"
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr "Informações de Grupos associados"
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr "Patches por Ubuntu disponíveis"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Endereços de email"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Fingerprint GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Nome de utilizador Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2018 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 "GPG fingerprint:"
msgstr "Fingerprint GPG:"
#: 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 "Alioth user name:"
msgstr "Nome de utilizador Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nome de utilizador Wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Id de utilizador do fórum:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,430 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2020-07-26 06:41+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.2-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "Bugs reportados"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "Tags de usuário"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"Todas as mensagens (Ex. pesquisa completa do texto para o nome do "
"desenvolvedor em todos os logs de bug)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "correspondente para bugs"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Histórico gráfico de bugs abertos há um ano"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Construção"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "relatórios lintian"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Sistema de rastreamento de patches Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Validador de Url do Debian"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Arquivos"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "Infomações DB via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "Informações DB via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "perfil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Miscelânea"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "links"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Site do Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Chave pública GPG via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Chave pública GPG via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:113
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:115
msgid "Group membership information"
msgstr "Informações de Grupos associados"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "Patches por Ubuntu disponíveis"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Endereços de email"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Fingerprint GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Nome de usuário Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Nome de usuário Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2018 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 "GPG fingerprint:"
msgstr "Fingerprint GPG:"
#: 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 "Alioth user name:"
msgstr "Nome de usuário Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nome de usuário Wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Id de usuário do fórum:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,434 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2020-08-23 21:36+0000\n"
"Last-Translator: ssantos <ssantos@web.de>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/pt_PT/>\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.2.1-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Visão Geral"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Visão geral dos Pacotes dos Membros do Debian"
#: debianmemberportfolio/views.py:42
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:46
msgid "Bugs"
msgstr "Bugs"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "Bugs reportados"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "Tags de utilizador"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"Todas as mensagens (Ex. pesquisa completa do texto para o nome do "
"programador em todos os logs de bug)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "correspondente para bugs"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "Histórico gráfico de bugs abertos há um ano"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Construção"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "Iglu"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Garantia de Qualidade"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "painel do mantenedor"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "relatórios lintian"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "todos os relatórios lintian (Ex. incluindo mensagens \"info\"-level)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Sistema de rastreamento de patches Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Validador de Url do Debian"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Listas de Discussão"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Ficheiros"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Associação"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "Infomações DB via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "Informações DB via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "perfil FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Fórum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Miscelânea"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (nome)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "ligações"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Site do Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Pesquisa Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Chave pública GPG via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Chave pública GPG via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "Participação NM, AM"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Insira as suas informações pessoais"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Informação alcançável via ssh (para membros Debian)"
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr "domínios debian.net adquiridos"
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr "Informações de Grupos associados"
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr "Patches por Ubuntu disponíveis"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Endereços de email"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Nome"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Fingerprint GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Endereço de email não Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Nome de utilizador Debian"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Nome de utilizador Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Direitos Autorais © 2009-2018 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 "GPG fingerprint:"
msgstr "Fingerprint GPG:"
#: 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 "Alioth user name:"
msgstr "Nome de utilizador Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Nome de utilizador Wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Id de utilizador do fórum:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Formato de saída:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,435 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2020-09-09 18:36+0000\n"
"Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Обзор"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Обзор пакетов участников Debian"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Обзор пакетов участников Debian\n"
"... отображение всех адресов электронной почты"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "Ошибки"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "сообщения об ошибках"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "теги пользователей"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"все сообщения (т.е. полнотекстовый поиск имени разработчика по всем журналам "
"ошибок)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "корреспондент по вопросам ошибок"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "график истории открытых ошибок за один год"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Сборка"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "иглу"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Гарантия качества"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "панель мониторинга"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "Lintian отчеты"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "полные отчеты Lintian (т. е. включая сообщения уровня \"информация\")"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Система отслеживания патчей Debian"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian Url проверщик"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Списки рассылки"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Файлы"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Членство"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "Информация о ДБ по отпечатку"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "Информация о ДБ по HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "Профиль FOAF"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Форум"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Разное"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Планета Debian (имя)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Планета Debian (имя пользователя)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "ссылки"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Сайт Debian"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Поиск Debian"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "Открытый ключ GPG через отпечаток"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "Открытый ключ GPG через HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "NM, AM участие"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Информация о вкладе"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr "Информация о репологии"
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Информация доступна по ssh (для членов Debian)"
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr "собственные домены debian.net"
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr "Информация о членстве в группе"
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr "Доступные патчи из Ubuntu"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "Адрес электронной почты"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Имя"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "Отпечаток GPG"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Имя пользователя Debian"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Электронный адрес, отличный от Debian"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Имя пользователя Salsa"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Имя пользователя Alioth"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Copyright © 2009-2018 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 "GPG fingerprint:"
msgstr "Отпечаток GPG:"
#: 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 "Alioth user name:"
msgstr "Имя пользователя Alioth:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Имя пользователя Wiki:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "ID пользователя форума:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Формат вывода:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,433 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2019-10-17 17:52+0000\n"
"Last-Translator: Mattias Münster <mattiasmun@gmail.com>\n"
"Language-Team: Swedish <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.9\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "Översikt"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Debian-medlemspaketets översikt"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian-medlemspaketets översikt\n"
"... visar alla e-postadresser"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "Buggar"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "buggar rapporterade"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "användartaggar"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
"alla meddelanden (dvs. fulltextsökning efter utvecklarnamn i alla felloggar)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "korrespondent för buggar"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "ett års öppen bugghistorik diagram"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "Bygge"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "bygged.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "Kvalitetssäkring"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "instrumentpanel för underhållare"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "lintian rapporter"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
"fullständiga lintianrapporter (dvs. inklusive \"info\" -nivåmeddelanden)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debian patch-spårningssystem"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian URL-kontroll"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "Sändlistor"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "Filer"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "oldpeople"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "Alioth"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "Medlemskap"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "DB-information via finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "DB-information via HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "FOAF-profil"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "Forum"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "Diverse"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "debtags"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (namn)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (användarnamn)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "länkar"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Debian webbplats"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Debian sökning"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "GPG offentlig nyckel via finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "GPG offentlig nyckel via HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "NM, AM deltagande"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "Information om bidrag"
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr "Information om repologi"
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr "Information som kan nås via SSH (för Debianmedlemmar)"
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr "ägda debian.net domäner"
#: debianmemberportfolio/views.py:114
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:116
msgid "Group membership information"
msgstr "Information om gruppmedlemskap"
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr "Tillgängliga patchar från Ubuntu"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "E-postadress"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "Namn"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "GPG-fingeravtryck"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian användarnamn"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "Icke Debian e-postadress"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsa användarnamn"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Alioth användarnamn"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Copyright © 2009-2018 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 "GPG fingerprint:"
msgstr "GPG-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 "Alioth user name:"
msgstr "Alioth användarnamn:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Wiki användarnamn:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "Forum användar-id:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "Utdataformat:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,422 @@
# 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: 2018-02-09 10:14+0100\n"
"PO-Revision-Date: 2020-10-15 10:26+0000\n"
"Last-Translator: tao wang <tonywang5@163.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/zh_Hans/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.3-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "概述"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Debian 成员的软件包概览"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian 成员的软件包概览\n"
"... 显示所有邮件地址"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "缺陷"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "bugs 报告"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "用户标签"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr "所有信息 (即,开发者名下所有缺陷日志的全文搜索)"
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr ""
"<a href=\"https://wiki.debian.org/WNPP\">需要支持的和未来应有的包WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr "bug的通信者"
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr "一年处理Bug历史图表"
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "构建"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "buildd.d.o"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "冰屋(igloo)"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "质量保证"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "维护者面板"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "Lintian报告"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr "全部Lintian报告(即包括\"info\"级信息)"
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr "piuparts"
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debian补丁追踪系统(Debian patch tracking system)"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian链接检查器(Debian Url Checker)"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "邮件列表"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr "lists.d.o"
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr "lists.a.d.o"
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "文件"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr "people.d.o"
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr "老人"
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr "北斗五(Alioth)"
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr "成员关系"
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr "NM"
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr "DB信息,通过finger"
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr "DB信息,通过HTTP"
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr "FOAF档案"
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr "Salsa"
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr "Wiki"
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr "论坛"
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr "杂项"
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr "包标签"
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr "Planet Debian (名字)"
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr "Planet Debian (用户名)"
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr "链接"
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr "Debian网站"
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr "Debian搜索"
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr "GPG公钥,通过finger"
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr "GPG公钥,通过HTTP"
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr "NM, AM 参加"
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr "贡献信息"
#: debianmemberportfolio/views.py:111
msgid "Information reachable via ssh (for Debian Members)"
msgstr "信息可获取,通过ssh(DM专用)"
#: debianmemberportfolio/views.py:112
msgid "owned debian.net domains"
msgstr "拥有 debian.net 领域"
#: debianmemberportfolio/views.py:113
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:115
msgid "Group membership information"
msgstr "群组会员信息"
#: debianmemberportfolio/views.py:118
msgid "Ubuntu"
msgstr "Ubuntu"
#: debianmemberportfolio/views.py:119
msgid "Available patches from Ubuntu"
msgstr "来自Ubuntu的可用补丁"
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr "邮件地址"
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr "姓名"
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr "GPG指纹"
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr "Debian用户名"
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr "非Debian邮件地址"
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr "Salsa用户名"
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr "Alioth用户名"
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 Jan Dittberner"
msgstr "Copyright © 2009-2018 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 "GPG fingerprint:"
msgstr "GPG指纹:"
#: 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 "Alioth user name:"
msgstr "Alioth用户名:"
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr "Wiki用户名:"
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr "论坛用户id:"
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr "输出格式:"
#: debianmemberportfolio/templates/showform.html:106
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

@ -0,0 +1,413 @@
# 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: 2018-05-12 10:32+0200\n"
"PO-Revision-Date: 2019-01-20 15:12+0000\n"
"Last-Translator: Louies <louies0623@gmail.com>\n"
"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
"debian-member-portfolio-service/translations/zh_Hant/>\n"
"Language: zh_Hant\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.4-dev\n"
"Generated-By: Babel 2.5.0\n"
#: debianmemberportfolio/forms.py:67
msgid "JSON"
msgstr "JSON"
#: debianmemberportfolio/forms.py:67
msgid "HTML"
msgstr "HTML"
#: debianmemberportfolio/views.py:40
msgid "Overview"
msgstr "總覽"
#: debianmemberportfolio/views.py:41
msgid "Debian Member's Package Overview"
msgstr "Debian 會員的套餐總覽"
#: debianmemberportfolio/views.py:42
msgid ""
"Debian Member's Package Overview\n"
"... showing all email addresses"
msgstr ""
"Debian 會員套件概述\n"
"...顯示所有電子郵件地址"
#: debianmemberportfolio/views.py:46
msgid "Bugs"
msgstr "錯誤"
#: debianmemberportfolio/views.py:47
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:51
msgid "bugs reported"
msgstr "錯誤回報"
#: debianmemberportfolio/views.py:52
msgid "user tags"
msgstr "用戶標籤"
#: debianmemberportfolio/views.py:53
msgid "all messages (i.e., full text search for developer name on all bug logs)"
msgstr ""
#: debianmemberportfolio/views.py:55
msgid "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
msgstr "<a href=\"https://wiki.debian.org/WNPP\">WNPP</a>"
#: debianmemberportfolio/views.py:56
msgid "correspondent for bugs"
msgstr ""
#: debianmemberportfolio/views.py:57
msgid "one year open bug history graph"
msgstr ""
#: debianmemberportfolio/views.py:60
msgid "Build"
msgstr "建構"
#: debianmemberportfolio/views.py:61
msgid "buildd.d.o"
msgstr "建構公司"
#: debianmemberportfolio/views.py:62
msgid "igloo"
msgstr "igloo"
#: debianmemberportfolio/views.py:65
msgid "Quality Assurance"
msgstr "品質保證"
#: debianmemberportfolio/views.py:66
msgid "maintainer dashboard"
msgstr "維護人員儀錶板"
#: debianmemberportfolio/views.py:67
msgid "lintian reports"
msgstr "lintian 報導"
#: debianmemberportfolio/views.py:68
msgid "full lintian reports (i.e. including \"info\"-level messages)"
msgstr ""
#: debianmemberportfolio/views.py:70
msgid "piuparts"
msgstr ""
#: debianmemberportfolio/views.py:71
msgid "Debian patch tracking system"
msgstr "Debian 補丁追踪系統"
#: debianmemberportfolio/views.py:72
msgid "Debian Url ChecKer"
msgstr "Debian URL檢查器"
#: debianmemberportfolio/views.py:75
msgid "Mailing Lists"
msgstr "郵遞清單"
#: debianmemberportfolio/views.py:76
msgid "lists.d.o"
msgstr ""
#: debianmemberportfolio/views.py:77
msgid "lists.a.d.o"
msgstr ""
#: debianmemberportfolio/views.py:78
msgid "gmane"
msgstr "gmane"
#: debianmemberportfolio/views.py:81
msgid "Files"
msgstr "檔案"
#: debianmemberportfolio/views.py:82
msgid "people.d.o"
msgstr ""
#: debianmemberportfolio/views.py:83
msgid "oldpeople"
msgstr ""
#: debianmemberportfolio/views.py:84 debianmemberportfolio/views.py:93
msgid "Alioth"
msgstr ""
#: debianmemberportfolio/views.py:87
msgid "Membership"
msgstr ""
#: debianmemberportfolio/views.py:88
msgid "NM"
msgstr ""
#: debianmemberportfolio/views.py:89
msgid "DB information via finger"
msgstr ""
#: debianmemberportfolio/views.py:90
msgid "DB information via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:91
msgid "FOAF profile"
msgstr ""
#: debianmemberportfolio/views.py:92
msgid "Salsa"
msgstr ""
#: debianmemberportfolio/views.py:94
msgid "Wiki"
msgstr ""
#: debianmemberportfolio/views.py:95
msgid "Forum"
msgstr ""
#: debianmemberportfolio/views.py:98
msgid "Miscellaneous"
msgstr ""
#: debianmemberportfolio/views.py:99
msgid "debtags"
msgstr ""
#: debianmemberportfolio/views.py:100
msgid "Planet Debian (name)"
msgstr ""
#: debianmemberportfolio/views.py:101
msgid "Planet Debian (username)"
msgstr ""
#: debianmemberportfolio/views.py:102
msgid "links"
msgstr ""
#: debianmemberportfolio/views.py:103
msgid "Debian website"
msgstr ""
#: debianmemberportfolio/views.py:104
msgid "Debian search"
msgstr ""
#: debianmemberportfolio/views.py:105
msgid "GPG public key via finger"
msgstr ""
#: debianmemberportfolio/views.py:106
msgid "GPG public key via HTTP"
msgstr ""
#: debianmemberportfolio/views.py:107
msgid "NM, AM participation"
msgstr ""
#: debianmemberportfolio/views.py:108
msgid "Contribution information"
msgstr ""
#: debianmemberportfolio/views.py:109
msgid "Repology information"
msgstr ""
#: debianmemberportfolio/views.py:112
msgid "Information reachable via ssh (for Debian Members)"
msgstr ""
#: debianmemberportfolio/views.py:113
msgid "owned debian.net domains"
msgstr ""
#: debianmemberportfolio/views.py:114
msgid ""
"<a href=\"https://wiki.debian.org/qa.debian.org/MIATeam\">MIA</a> database "
"information"
msgstr ""
#: debianmemberportfolio/views.py:116
msgid "Group membership information"
msgstr ""
#: debianmemberportfolio/views.py:119
msgid "Ubuntu"
msgstr ""
#: debianmemberportfolio/views.py:120
msgid "Available patches from Ubuntu"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:43
msgid "Email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:44
msgid "Name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:45
msgid "GPG fingerprint"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:46
msgid "Debian user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:47
msgid "Non Debian email address"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:48
msgid "Salsa user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:49
msgid "Alioth user name"
msgstr ""
#: debianmemberportfolio/model/urlbuilder.py:110
#: debianmemberportfolio/model/urlbuilder.py:114
#, 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-2018 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 "GPG 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 "Alioth user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:85
msgid "Wiki user name:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:92
msgid "Forum user id:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:99
msgid "Output format:"
msgstr ""
#: debianmemberportfolio/templates/showform.html:106
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 ""

View file

@ -0,0 +1,220 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# Debian Member Portfolio Service views
#
# Copyright © 2015-2020 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 debianmemberportfolio import app, babel
from flask import g, make_response, request, render_template, abort
# noinspection PyPep8Naming
from flask_babel import lazy_gettext as N_
from config import LANGUAGES
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'),
'searchall': N_('all messages (i.e., full text search for \
developer name on all bug logs)'),
'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'),
'patchtracker': N_('Debian patch tracking system'),
'duck': N_('Debian Url ChecKer'),
'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'),
'webid': N_('FOAF profile'),
'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_('GPG public key via finger'),
'gpgweb': N_('GPG 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'),
},
'ubuntu': {
'label': N_('Ubuntu'),
'ubuntudiff': N_('Available patches from Ubuntu'),
},
}
#: list of field name tuples for Debian Maintainers
DM_TUPLES = (('name', 'name'),
('gpgfp', 'gpgfp'),
('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']:
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])
)

View file

@ -1,64 +0,0 @@
#
# 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 = 0.0.0.0
port = 5000
[app:main]
use = egg:ddportfolioservice
full_stack = 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, ddportfolioservice
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[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] %(message)s
datefmt = %H:%M:%S

1
docs/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
build/

View file

@ -1,190 +0,0 @@
# -*- 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,18 +0,0 @@
.. 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`

114
docs/source/conf.py Normal file
View file

@ -0,0 +1,114 @@
# -*- 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-2020, 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.6.4'
# 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

23
docs/source/credits.rst Normal file
View file

@ -0,0 +1,23 @@
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>
Translations
------------
* Jan Dittberner
* Daniel Manzano (Brazilian Portuguese)
* Izharul Haq (Indonesian)
* Stéphane Aulery (French)
If you think your name is missing please tell me (Jan Dittberner) about your
contribution and I'll add you.

154
docs/source/devdocs.rst Normal file
View file

@ -0,0 +1,154 @@
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://debianstuff.dittberner.info/git/debianmemberportfolio.git.
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://debianstuff.dittberner.info/git/debianmemberportfolio.git
You should use `venv`_ to separate the development environment from your
system wide Python installation. You can install virtualenv using::
sudo aptitude install python3-venv
.. _venv: https://docs.python.org/3/library/venv.html
When you have :command:`pyvenv` installed you should create a virtual
environment for Debian Member Portfolio Service development and install the
requirements using `pip <https://pypi.python.org/pypi/pip>`_::
mkdir ~/.virtualenvs
pyvenv ~/.virtualenvs/dmportfolio
. ~/.virtualenvs/dmportfolio/bin/activate
cd ~/src/debianmemberportfolio
pip install -r stretchreq.pip
.. note::
The Debian Member Portfolio Service instance at http://portfolio.debian.net/
is running on a Debian Stretch server, therefore :file:`stretchreq.pip`
contains dependency versions matching that Debian release.
The dependency download and installation into the virtual environment takes
some time.
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 PGP 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::
. ~/.virtualenvs/dmportfolio/bin/activate
./synckeyrings.sh
python 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::
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
%(gpgfp)s GNUPG/PGP 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.

28
docs/source/index.rst Normal file
View file

@ -0,0 +1,28 @@
.. 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

@ -0,0 +1,47 @@
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:

11
requirements.txt Normal file
View file

@ -0,0 +1,11 @@
Flask==0.12.2
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2
itsdangerous==0.24
Babel==2.5.0
Flask-Babel==0.11.2
pytz==2017.2
speaklater==1.3
Flask-WTF==0.14.2
WTForms==2.1

28
run.py Executable file
View file

@ -0,0 +1,28 @@
#!/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()

View file

@ -2,34 +2,38 @@
tag_build = dev
tag_svn_revision = true
[easy_install]
find_links = http://www.pylonshq.com/download/
[build_sphinx]
source-dir = docs
source-dir = docs/source
build-dir = docs/build
all_files = 1
[publish]
doc-dir=docs/html
make-dirs=1
[nosetests]
cover-package = debianmemberportfolio
# Babel configuration
[compile_catalog]
domain = ddportfolioservice
directory = ddportfolioservice/i18n
domain = messages
directory = debianmemberportfolio/translations
statistics = true
[extract_messages]
charset = UTF-8
add_comments = TRANSLATORS:
output_file = ddportfolioservice/i18n/ddportfolioservice.pot
output_file = messages.pot
width = 80
msgid_bugs_address = jan@dittberner.info
[init_catalog]
domain = ddportfolioservice
input_file = ddportfolioservice/i18n/ddportfolioservice.pot
output_dir = ddportfolioservice/i18n
domain = messages
input_file = messages.pot
output_dir = debianmemberportfolio/translations
[update_catalog]
domain = ddportfolioservice
input_file = ddportfolioservice/i18n/ddportfolioservice.pot
output_dir = ddportfolioservice/i18n
domain = messages
input_file = messages.pot
output_dir = debianmemberportfolio/translations
previous = true

View file

@ -1,43 +1,42 @@
# -*- python -*-
# -*- coding: utf-8 -*-
#
# DDPortfolio service setup
# Copyright (c) 2009 Jan Dittberner <jan@dittberner.info>
# Debian Member Portfolio Service setup
# Copyright © 2009-2020 Jan Dittberner <jan@dittberner.info>
#
# This file is part of DDPortfolio service.
# This file is part of the Debian Member Portfolio 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.
# 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.
#
# 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.
# 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
# <http://www.gnu.org/licenses/>.
# License along with this program. If not, see <https://www.gnu.org/licenses/>.
#
try:
from setuptools import setup, find_packages
except ImportError:
# noinspection PyUnresolvedReferences
from ez_setup import use_setuptools
use_setuptools()
from setuptools import setup, find_packages
setup(
name='ddportfolioservice',
version='0.1',
description='service to create DDPortfolio URLs',
long_description="""This is a service implementation that
returns a set of personalized URLs as outlined in
http://wiki.debian.org/DDPortfolio. It takes the Debian developers
full name and email address as input and returns a JSON formatted
array of URLs.""",
# Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers=['Development Status :: 3 - Alpha',
name='debianmemberportfolio',
version='0.6.4',
description='service to create Debian Member Portfolio URLs',
long_description="""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 of URLs.""",
# Get strings from https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers=['Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',
'License :: DFSG approved',
'License :: OSI approved :: ' +
@ -46,22 +45,18 @@ array of URLs.""",
keywords='Debian service JSON',
author='Jan Dittberner',
author_email='jan@dittberner.info',
url='http://debian-stuff.dittberner.info/ddportfolioservice',
url='http://debian-stuff.dittberner.info/debianmemberportfolio',
license='AGPL-3.0+',
install_requires=["Pylons>=0.9.6.2"],
install_requires=["Flask>=0.12.2", 'Babel>=2.5.0', 'Flask-Babel>=0.11.2', 'wtforms'],
packages=find_packages(exclude=['ez_setup']),
include_package_data=True,
test_suite='nose.collector',
package_data={'ddportfolioservice': ['*.ini', 'i18n/*/LC_MESSAGES/*.mo']},
message_extractors = {'ddportfolioservice': [
package_data={'debianmemberportfolio':
['*.ini', 'translations/*/LC_MESSAGES/*.mo']},
message_extractors={'debianmemberportfolio': [
('**.py', 'python', None),
('templates/**.mako', 'mako', None),
('public/**', 'ignore', None)]},
entry_points="""
[paste.app_factory]
main = ddportfolioservice.config.middleware:make_app
[paste.app_install]
main = pylons.util:PylonsInstaller
""",
('templates/**.html', 'jinja2', None),
('templates/**.js', 'jinja2', None),
('static/**', 'ignore', None)]},
zip_safe=False,
)

10
stretch.pip Normal file
View file

@ -0,0 +1,10 @@
Flask==0.12
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.15
itsdangerous==0.24
Babel==2.3.4
Flask-Babel==0.11.1
pytz==2016.7
Flask-WTF==0.12
WTForms==2.1

28
synckeyrings.sh Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
# Copyright (C) 2009 Jan Dittberner <jandd@debian.org> and others This
# little script is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; version 3.
#
# On Debian systems, the complete text of the GNU General Public
# License can be found in /usr/share/common-licenses/GPL-3 file.
#
# This script syncs local copies of the debian-keyring with
# keyring.d.o (the keyring package is too old).
#
# ~/debian/keyring.debian.org/keyrings/ will be created if it doesn't exist.
# Always exit if there is an error
set -e
# For the rsync of the debian keyrings and for the nm.gpg
DESTDIR="${DEBHOME:-"$HOME/debian"}/keyring.debian.org/keyrings"
# For the following calls use LANG=C - some output is used for
# reports to a list / for an english report.
LANG=C
export LANG
test -d $DESTDIR || mkdir -p $DESTDIR
rsync -qcltz --block-size=8192 --partial --progress --exclude='emeritus-*' --exclude='removed-*' 'keyring.debian.org::keyrings/keyrings/*' $DESTDIR/.

View file

@ -1,21 +0,0 @@
#
# ddportfolioservice - Pylons testing 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 = 0.0.0.0
port = 5000
[app:main]
use = config:development.ini
# Add additional test specific configuration options as necessary.