20 | {% paginator 5 %}
21 | {% endblock %}
22 |
--------------------------------------------------------------------------------
/templates/registration/activation_email.txt:
--------------------------------------------------------------------------------
1 | {% load humanize %}
2 | Someone, hopefully you, signed up for a new account at {{ site_url }} using this email address. If it was you, and you'd like to activate and use your account, click the link below or copy and paste it into your web browser's address bar:
3 |
4 | http://{{ site.domain }}{% url 'registration_activate' activation_key=activation_key %}
5 |
6 | If you didn't request this, you don't need to do anything; you won't receive any
7 | more email from us, and the account will expire automatically in {{ expiration_days|apnumber }} day{{expiration_days|apnumber|pluralize}}.
8 |
--------------------------------------------------------------------------------
/templates/flatpages/default.html:
--------------------------------------------------------------------------------
1 | {% extends "base_2col.html" %}
2 | {% block title %}{{ flatpage.title }}{% endblock %}
3 |
4 | {% block sectionid %}{{ flatpage.title }}{% endblock %}
5 |
6 | {% block billboard %}{{ flatpage.title }}{% endblock %}
7 |
8 | {% block content-related %}
9 |
10 | To browse the currently listed software projects or to submit your own,
11 | click on the Software tab.
12 | You will need to register to be able to submit new projects.
13 | {% endblock %}
14 |
15 | {% block content %}
16 | {{ flatpage.content }}
17 | {% endblock %}
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/blog/urls.py:
--------------------------------------------------------------------------------
1 |
2 | from django.conf.urls import url, include
3 |
4 | from blog.models import BlogItem
5 | from blog.feeds import RssBlogFeed
6 | from blog.feeds import BlogView
7 | from blog.feeds import YearView
8 | from blog.feeds import MonthView
9 | from blog.feeds import DetailView
10 |
11 |
12 | urlpatterns = [
13 | url(r'^(?P\d{4})/(?P[a-z]{3})/(?P\w{1,2})/(?P[A-Za-z0-9-_]+)/$', DetailView.as_view(), name='get_blog'),
14 | url(r'^(?P\d{4})/(?P[a-z]{3})/$', MonthView.as_view()),
15 | url(r'^(?P\d{4})/$', YearView.as_view()),
16 | url(r'^rss/latest/$', RssBlogFeed),
17 | ]
18 |
--------------------------------------------------------------------------------
/templates/registration/password_reset_email.html:
--------------------------------------------------------------------------------
1 | {% load i18n %}
2 | {% autoescape off %}
3 | {% blocktrans %}You're receiving this e-mail because you requested a password reset for your user account at {{ site_name }}.{% endblocktrans %}
4 |
5 | {% trans "Please go to the following page and choose a new password:" %}
6 | {% block reset_link %}
7 | https://{{ domain }}{% url 'password_reset_confirm' uidb36=uid token=token %}
8 | {% endblock %}
9 | {% trans "Your username, in case you've forgotten:" %} {{ user.username }}
10 |
11 | {% trans "Thanks for using our site!" %}
12 |
13 | {% blocktrans %}The {{ site_name }} team{% endblocktrans %}
14 |
15 | {% endautoescape %}
16 |
--------------------------------------------------------------------------------
/captcha/widgets.py:
--------------------------------------------------------------------------------
1 | from django import forms
2 | from django.utils.safestring import mark_safe
3 | from django.conf import settings
4 | from recaptcha.client import captcha
5 |
6 | class ReCaptcha(forms.widgets.Widget):
7 | recaptcha_challenge_name = 'recaptcha_challenge_field'
8 | recaptcha_response_name = 'recaptcha_response_field'
9 |
10 |
11 | def render(self, name, value, attrs=None):
12 | return mark_safe(u'%s' % captcha.displayhtml(settings.RECAPTCHA_PUBLIC_KEY, use_ssl=True))
13 |
14 | def value_from_datadict(self, data, files, name):
15 | return [data.get(self.recaptcha_challenge_name, None),
16 | data.get(self.recaptcha_response_name, None)]
17 |
--------------------------------------------------------------------------------
/registration/management/commands/cleanupregistration.py:
--------------------------------------------------------------------------------
1 | """
2 | A management command which deletes expired accounts (e.g.,
3 | accounts which signed up but never activated) from the database.
4 |
5 | Calls ``RegistrationProfile.objects.delete_expired_users()``, which
6 | contains the actual logic for determining which accounts are deleted.
7 |
8 | """
9 |
10 | from django.core.management.base import NoArgsCommand
11 |
12 | from registration.models import RegistrationProfile
13 |
14 |
15 | class Command(NoArgsCommand):
16 | help = "Delete expired user registrations from the database"
17 |
18 | def handle_noargs(self, **options):
19 | RegistrationProfile.objects.delete_expired_users()
20 |
--------------------------------------------------------------------------------
/templates/users/user_list.html:
--------------------------------------------------------------------------------
1 | {% extends "base_2col.html" %}
2 | {% load paginator %}
3 |
4 | {% block sectionid %}browse{% endblock %}
5 |
6 | {% block title %}User List{% endblock %}
7 |
8 | {% block billboard %}User List{% endblock %}
9 |
10 | {% block content %}
11 | {% paginator 5 %}
12 |
11 | To browse the currently listed software projects or to submit your own,
12 | click on the Software tab.
13 | You will need to register to be able to submit new projects.
50 | {% else %}
51 |
52 | {% endif %}
53 |
--------------------------------------------------------------------------------
/registration/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from django.contrib.sites.requests import RequestSite
3 | from django.contrib.sites.models import Site
4 | from django.utils.translation import ugettext_lazy as _
5 |
6 | from registration.models import RegistrationProfile
7 |
8 |
9 | class RegistrationAdmin(admin.ModelAdmin):
10 | actions = ['activate_users', 'resend_activation_email']
11 | list_display = ('user', 'activation_key_expired')
12 | raw_id_fields = ['user']
13 | search_fields = ('user__username', 'user__first_name')
14 |
15 | def activate_users(self, request, queryset):
16 | """
17 | Activates the selected users, if they are not alrady
18 | activated.
19 |
20 | """
21 | for profile in queryset:
22 | RegistrationProfile.objects.activate_user(profile.activation_key)
23 | activate_users.short_description = _("Activate users")
24 |
25 | def resend_activation_email(self, request, queryset):
26 | """
27 | Re-sends activation emails for the selected users.
28 |
29 | Note that this will *only* send activation emails for users
30 | who are eligible to activate; emails will not be sent to users
31 | whose activation keys have expired or who have already
32 | activated.
33 |
34 | """
35 | if Site._meta.installed:
36 | site = Site.objects.get_current()
37 | else:
38 | site = RequestSite(request)
39 |
40 | for profile in queryset:
41 | if not profile.activation_key_expired():
42 | profile.send_activation_email(site)
43 | resend_activation_email.short_description = _("Re-send activation emails")
44 |
45 |
46 | admin.site.register(RegistrationProfile, RegistrationAdmin)
47 |
--------------------------------------------------------------------------------
/templatetags/paginator.py:
--------------------------------------------------------------------------------
1 | from django import template
2 | from urllib import quote
3 |
4 | register = template.Library()
5 | @register.inclusion_tag('paginator.html', takes_context=True)
6 |
7 | def paginator(context, adjacent_pages=2):
8 | """
9 | To be used in conjunction with the object_list generic view.
10 |
11 | Adds pagination context variables for use in displaying first, adjacent and
12 | last page links in addition to those created by the object_list generic
13 | view.
14 |
15 | """
16 |
17 | if context.has_key('is_paginated'):
18 | page_numbers = [n for n in \
19 | range(context['page'] - adjacent_pages, context['page'] + adjacent_pages + 1) \
20 | if n > 0 and n <= context['pages']]
21 | results_this_page = context['object_list'].count()
22 | range_base = ((context['page'] - 1) * context['results_per_page'])
23 | if len(page_numbers)<=1:
24 | page_numbers=[]
25 |
26 | r= {
27 | 'hits': context['hits'],
28 | 'results_per_page': context['results_per_page'],
29 | 'results_this_page': results_this_page,
30 | 'first_this_page': range_base + 1,
31 | 'last_this_page': range_base + results_this_page,
32 | 'page': context['page'],
33 | 'pages': context['pages'],
34 | 'page_numbers': page_numbers,
35 | 'next': context['next'],
36 | 'previous': context['previous'],
37 | 'has_next': context['has_next'],
38 | 'has_previous': context['has_previous'],
39 | 'show_first': 1 not in page_numbers,
40 | 'show_last': context['pages'] not in page_numbers,
41 | }
42 |
43 | if context.has_key('search_term'):
44 | r['search_term']=quote(context['search_term'],'')
45 |
46 | return r
47 |
--------------------------------------------------------------------------------
/community/summary.py:
--------------------------------------------------------------------------------
1 | from community.models import Forum,Thread,Post
2 | from django.template import RequestContext
3 | from aggregator.models import Feed, FeedItem
4 | from blog.models import BlogItem
5 |
6 | class ForumSummary():
7 | """
8 | Summarises latest forum posts
9 | """
10 | title = ''
11 | url = ''
12 | body = ''
13 | author = ''
14 | time = ''
15 | thread = ''
16 |
17 | class FeedSummary():
18 | """
19 | Summarises the latest feeds from external sites
20 | """
21 | title = ''
22 | url = ''
23 | items = []
24 |
25 |
26 | def get_latest_posts():
27 | """
28 | For each Forum, get the latest post
29 | """
30 | latest_posts = []
31 | all_forums = Forum.objects.all()
32 | for forum in all_forums:
33 | summary = ForumSummary()
34 | summary.title = forum.title
35 | post = forum.forum_latest_post
36 | if post:
37 | summary.body = post.body
38 | summary.url = post.get_absolute_url()
39 | summary.author = post.author
40 | summary.pub_date = post.time
41 | if post.thread:
42 | summary.thread = post.thread.title
43 | latest_posts.append(summary)
44 | return latest_posts
45 |
46 | def get_latest_feeds():
47 | """
48 | For each feed from an external site, get the latest post title
49 | """
50 | all_feeds = Feed.objects.all()
51 |
52 | latest_feeds = []
53 | for feed in all_feeds:
54 | cur_feed = FeedSummary()
55 | cur_feed.title = feed.title
56 | cur_feed.url = feed.public_url
57 | items = FeedItem.objects.filter(feed__title=feed.title).order_by('-date_modified')
58 | cur_feed.items = items[:3]
59 |
60 | latest_feeds.append(cur_feed)
61 |
62 | return latest_feeds
63 |
64 | def get_latest_news(extra=None):
65 | if extra is None:
66 | extra=dict()
67 |
68 | latest_posts = get_latest_posts()
69 | latest_feeds = get_latest_feeds()
70 | blog_entries = BlogItem.objects.order_by('-pub_date')[:10]
71 | extra['latest_posts']=latest_posts
72 | extra['latest_feeds']=latest_feeds
73 | extra['blog_entries']=blog_entries
74 | extra['blog_years']=BlogItem.objects.dates('pub_date', 'year')
75 | return extra
76 |
--------------------------------------------------------------------------------
/software/templatetags/paginator.py:
--------------------------------------------------------------------------------
1 | from django import template
2 | from urllib import quote
3 |
4 | register = template.Library()
5 | @register.inclusion_tag('paginator.html', takes_context=True)
6 |
7 | def paginator(context, adjacent_pages=2):
8 | """
9 | To be used in conjunction with the object_list generic view.
10 |
11 | Adds pagination context variables for use in displaying first, adjacent and
12 | last page links in addition to those created by the object_list generic
13 | view.
14 |
15 | """
16 |
17 | if context.has_key('is_paginated'):
18 | page_obj=context['page_obj']
19 | paginator=page_obj.paginator
20 | page_numbers = [n for n in \
21 | range(page_obj.number - adjacent_pages, page_obj.number + adjacent_pages + 1) \
22 | if n > 0 and n <= paginator.num_pages]
23 | results_this_page = context['object_list'].count()
24 | range_base = ((page_obj.number - 1) * paginator.per_page)
25 | if len(page_numbers)<=1:
26 | page_numbers=[]
27 |
28 | r= {
29 | 'hits': paginator.count,
30 | 'results_per_page': paginator.per_page,
31 | 'results_this_page': results_this_page,
32 | 'first_this_page': range_base + 1,
33 | 'last_this_page': range_base + results_this_page,
34 | 'page': page_obj.number,
35 | 'pages': paginator.num_pages,
36 | 'page_numbers': page_numbers,
37 | 'next': page_obj.next_page_number,
38 | 'previous': page_obj.previous_page_number,
39 | 'has_next': page_obj.has_next(),
40 | 'has_previous': page_obj.has_previous(),
41 | 'show_first': 1 not in page_numbers,
42 | 'show_last': paginator.num_pages not in page_numbers,
43 | }
44 |
45 | if context.has_key('search_term'):
46 | r['search_term']=quote(context['search_term'],'')
47 |
48 | return r
49 |
--------------------------------------------------------------------------------
/registration/locale/en/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: PACKAGE VERSION\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2009-10-12 14:09-0500\n"
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 | "Last-Translator: FULL NAME \n"
14 | "Language-Team: LANGUAGE \n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | #: admin.py:23
20 | msgid "Activate users"
21 | msgstr ""
22 |
23 | #: admin.py:43
24 | msgid "Re-send activation emails"
25 | msgstr ""
26 |
27 | #: forms.py:35
28 | msgid "username"
29 | msgstr ""
30 |
31 | #: forms.py:36
32 | msgid "This value must contain only letters, numbers and underscores."
33 | msgstr ""
34 |
35 | #: forms.py:39
36 | msgid "Email address"
37 | msgstr ""
38 |
39 | #: forms.py:41
40 | msgid "Password"
41 | msgstr ""
42 |
43 | #: forms.py:43
44 | msgid "Password (again)"
45 | msgstr ""
46 |
47 | #: forms.py:55
48 | msgid "A user with that username already exists."
49 | msgstr ""
50 |
51 | #: forms.py:67
52 | msgid "The two password fields didn't match."
53 | msgstr ""
54 |
55 | #: forms.py:78
56 | msgid "I have read and agree to the Terms of Service"
57 | msgstr ""
58 |
59 | #: forms.py:79
60 | msgid "You must agree to the terms to register"
61 | msgstr ""
62 |
63 | #: forms.py:95
64 | msgid ""
65 | "This email address is already in use. Please supply a different email "
66 | "address."
67 | msgstr ""
68 |
69 | #: forms.py:122
70 | msgid ""
71 | "Registration using free email addresses is prohibited. Please supply a "
72 | "different email address."
73 | msgstr ""
74 |
75 | #: models.py:165
76 | msgid "user"
77 | msgstr ""
78 |
79 | #: models.py:166
80 | msgid "activation key"
81 | msgstr ""
82 |
83 | #: models.py:171
84 | msgid "registration profile"
85 | msgstr ""
86 |
87 | #: models.py:172
88 | msgid "registration profiles"
89 | msgstr ""
90 |
--------------------------------------------------------------------------------
/registration/locale/zh_CN/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: PACKAGE VERSION\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2007-09-19 19:30-0500\n"
11 | "PO-Revision-Date: 2008-03-20 23:22+0800\n"
12 | "Last-Translator: hutuworm \n"
13 | "Language-Team: LANGUAGE \n"
14 | "MIME-Version: 1.0\n"
15 | "Content-Type: text/plain; charset=UTF-8\n"
16 | "Content-Transfer-Encoding: 8bit\n"
17 |
18 | #: forms.py:38
19 | msgid "username"
20 | msgstr "用户名"
21 |
22 | #: forms.py:41
23 | msgid "email address"
24 | msgstr "Email 地址"
25 |
26 | #: forms.py:43
27 | msgid "password"
28 | msgstr "密码"
29 |
30 | #: forms.py:45
31 | msgid "password (again)"
32 | msgstr "密码(重复)"
33 |
34 | #: forms.py:54
35 | msgid "Usernames can only contain letters, numbers and underscores"
36 | msgstr "用户名只能包含字母、数字和下划线"
37 |
38 | #: forms.py:59
39 | msgid "This username is already taken. Please choose another."
40 | msgstr "该用户名已被占用,请另选一个。"
41 |
42 | #: forms.py:68
43 | msgid "You must type the same password each time"
44 | msgstr "您必须输入两遍同样的密码"
45 |
46 | #: forms.py:96
47 | msgid "I have read and agree to the Terms of Service"
48 | msgstr "我已阅读并同意该服务条款"
49 |
50 | #: forms.py:105
51 | msgid "You must agree to the terms to register"
52 | msgstr "您必须同意注册条款"
53 |
54 | #: forms.py:124
55 | msgid "This email address is already in use. Please supply a different email address."
56 | msgstr "该 Email 地址已有人使用,请提供一个另外的 Email 地址。"
57 |
58 | #: forms.py:149
59 | msgid "Registration using free email addresses is prohibited. Please supply a different email address."
60 | msgstr "禁止使用免费 Email 地址注册,请提供一个另外的 Email 地址。"
61 |
62 | #: models.py:188
63 | msgid "user"
64 | msgstr "用户"
65 |
66 | #: models.py:189
67 | msgid "activation key"
68 | msgstr "激活密钥"
69 |
70 | #: models.py:194
71 | msgid "registration profile"
72 | msgstr "注册信息"
73 |
74 | #: models.py:195
75 | msgid "registration profiles"
76 | msgstr "注册信息"
77 |
78 |
--------------------------------------------------------------------------------
/registration/locale/zh_TW/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | msgid ""
7 | msgstr ""
8 | "Project-Id-Version: PACKAGE VERSION\n"
9 | "Report-Msgid-Bugs-To: \n"
10 | "POT-Creation-Date: 2007-09-19 19:30-0500\n"
11 | "PO-Revision-Date: 2008-03-20 23:22+0800\n"
12 | "Last-Translator: hutuworm \n"
13 | "Language-Team: LANGUAGE \n"
14 | "MIME-Version: 1.0\n"
15 | "Content-Type: text/plain; charset=UTF-8\n"
16 | "Content-Transfer-Encoding: 8bit\n"
17 |
18 | #: forms.py:38
19 | msgid "username"
20 | msgstr "用戶名"
21 |
22 | #: forms.py:41
23 | msgid "email address"
24 | msgstr "Email 地址"
25 |
26 | #: forms.py:43
27 | msgid "password"
28 | msgstr "密碼"
29 |
30 | #: forms.py:45
31 | msgid "password (again)"
32 | msgstr "密碼(重復)"
33 |
34 | #: forms.py:54
35 | msgid "Usernames can only contain letters, numbers and underscores"
36 | msgstr "用戶名只能包含字母、數字和下劃線"
37 |
38 | #: forms.py:59
39 | msgid "This username is already taken. Please choose another."
40 | msgstr "該用戶名已被佔用,請另選一個。"
41 |
42 | #: forms.py:68
43 | msgid "You must type the same password each time"
44 | msgstr "您必須輸入兩遍同樣的密碼"
45 |
46 | #: forms.py:96
47 | msgid "I have read and agree to the Terms of Service"
48 | msgstr "我已閱讀並同意該服務條款"
49 |
50 | #: forms.py:105
51 | msgid "You must agree to the terms to register"
52 | msgstr "您必須同意注冊條款"
53 |
54 | #: forms.py:124
55 | msgid "This email address is already in use. Please supply a different email address."
56 | msgstr "該 Email 地址已有人使用,請提供一個另外的 Email 地址。"
57 |
58 | #: forms.py:149
59 | msgid "Registration using free email addresses is prohibited. Please supply a different email address."
60 | msgstr "禁止使用免費 Email 地址注冊,請提供一個另外的 Email 地址。"
61 |
62 | #: models.py:188
63 | msgid "user"
64 | msgstr "用戶"
65 |
66 | #: models.py:189
67 | msgid "activation key"
68 | msgstr "激活密鑰"
69 |
70 | #: models.py:194
71 | msgid "registration profile"
72 | msgstr "注冊信息"
73 |
74 | #: models.py:195
75 | msgid "registration profiles"
76 | msgstr "注冊信息"
77 |
78 |
--------------------------------------------------------------------------------
/community/subscriptions.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import get_object_or_404
2 | from django.contrib.sites.models import Site
3 | from django.http import HttpResponse, HttpResponseRedirect, Http404
4 | from models import Forum, Thread, Post
5 |
6 | def SubscribeForum(request, forum, bookmark=False):
7 | if not request.user.is_authenticated():
8 | return HttpResponseRedirect('/accounts/login?next=%s' % request.path)
9 | entry = get_object_or_404(Forum, slug=forum)
10 | entry.subscribe(request.user, bookmark)
11 | return HttpResponseRedirect("/user/view/" + str(request.user.id) + "/")
12 |
13 | def UnsubscribeForum(request, forum, bookmark=False):
14 | if not request.user.is_authenticated():
15 | return HttpResponseRedirect('/accounts/login?next=%s' % request.path)
16 | entry = get_object_or_404(Forum, slug=forum)
17 | entry.unsubscribe(request.user, bookmark)
18 |
19 | return HttpResponseRedirect("/user/view/" + str(request.user.id) + "/")
20 |
21 | def BookmarkForum(request, forum):
22 | return SubscribeForum(request, forum, bookmark=True)
23 | def RemoveBookmarkForum(request, forum):
24 | return UnsubscribeForum(request, forum, bookmark=True)
25 |
26 | def SubscribeThread(request, forum, thread, bookmark=False):
27 | if not request.user.is_authenticated():
28 | return HttpResponseRedirect('/accounts/login?next=%s' % request.path)
29 | entry = get_object_or_404(Thread, pk=thread)
30 | entry.subscribe(request.user, bookmark)
31 | return HttpResponseRedirect("/user/view/" + str(request.user.id) + "/")
32 |
33 | def BookmarkThread(request, forum, thread):
34 | return SubscribeThread(request, forum, thread, bookmark=True)
35 |
36 | def UnsubscribeThread(request, forum, thread, bookmark=False):
37 | if not request.user.is_authenticated():
38 | return HttpResponseRedirect('/accounts/login?next=%s' % request.path)
39 | entry = get_object_or_404(Thread, pk=thread)
40 | entry.unsubscribe(request.user, bookmark)
41 |
42 | return HttpResponseRedirect("/user/view/" + str(request.user.id) + "/")
43 |
44 | def RemoveBookmarkThread(request, forum, thread):
45 | return UnsubscribeThread(request, forum, thread, bookmark=True)
46 |
--------------------------------------------------------------------------------
/registration/locale/is/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # Icelandic translation of django-registration
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the django-registration
4 | # package.
5 | # Björn Kristinsson , 2009.
6 | #
7 | #, fuzzy
8 | msgid ""
9 | msgstr ""
10 | "Project-Id-Version: PACKAGE VERSION\n"
11 | "Report-Msgid-Bugs-To: \n"
12 | "POT-Creation-Date: 2009-01-22 12:49+0100\n"
13 | "PO-Revision-Date: 2009-01-22 12:49+0100\n"
14 | "Last-Translator: Björn Kristinsson \n"
15 | "Language-Team: Icelandic\n"
16 | "MIME-Version: 1.0\n"
17 | "Content-Type: text/plain; charset=UTF-8\n"
18 | "Content-Transfer-Encoding: 8bit\n"
19 |
20 | #: forms.py:36
21 | msgid "username"
22 | msgstr "notandanafn"
23 |
24 | #: forms.py:39
25 | msgid "email address"
26 | msgstr "netfang"
27 |
28 | #: forms.py:41
29 | msgid "password"
30 | msgstr "lykilorð"
31 |
32 | #: forms.py:43
33 | msgid "password (again)"
34 | msgstr "lykilorð (aftur)"
35 |
36 | #: forms.py:55
37 | msgid "This username is already taken. Please choose another."
38 | msgstr "Þetta notendanafn er þegar á skrá. Vinsamlega reyndu annað."
39 |
40 | #: forms.py:67
41 | msgid "You must type the same password each time"
42 | msgstr "Lykilorðin verða að vera eins "
43 |
44 | #: forms.py:90
45 | msgid "I have read and agree to the Terms of Service"
46 | msgstr "Ég hef lesið og samþykki skilmálana"
47 |
48 | #: forms.py:107
49 | msgid ""
50 | "This email address is already in use. Please supply a different email "
51 | "address."
52 | msgstr "Þetta netfang er þegar á skrá. Vinsamlegast notaðu annað netfang."
53 |
54 | #: forms.py:133
55 | msgid ""
56 | "Registration using free email addresses is prohibited. Please supply a "
57 | "different email address."
58 | msgstr "Óheimilt er að nota ókeypis netföng. Vinsamlegast notaðu annað netfang."
59 |
60 | #: models.py:218
61 | msgid "user"
62 | msgstr "notandi"
63 |
64 | #: models.py:219
65 | msgid "activation key"
66 | msgstr "einkennislykill"
67 |
68 | #: models.py:224
69 | msgid "registration profile"
70 | msgstr "skráningarprófíll"
71 |
72 | #: models.py:225
73 | msgid "registration profiles"
74 | msgstr "skráningarprófílar"
75 |
--------------------------------------------------------------------------------
/registration/backends/default/urls.py:
--------------------------------------------------------------------------------
1 | """
2 | URLconf for registration and activation, using django-registration's
3 | default backend.
4 |
5 | If the default behavior of these views is acceptable to you, simply
6 | use a line like this in your root URLconf to set up the default URLs
7 | for registration::
8 |
9 | (r'^accounts/', include('registration.backends.default.urls')),
10 |
11 | This will also automatically set up the views in
12 | ``django.contrib.auth`` at sensible default locations.
13 |
14 | If you'd like to customize the behavior (e.g., by passing extra
15 | arguments to the various views) or split up the URLs, feel free to set
16 | up your own URL patterns for these views instead.
17 |
18 | """
19 |
20 |
21 |
22 | from django.conf.urls import url, include
23 | from django.views.generic import TemplateView
24 |
25 | from registration.views import activate
26 | from registration.views import register
27 |
28 | from captcha.forms import RegistrationFormCaptcha
29 |
30 | urlpatterns = [
31 | url(r'^activate/complete/$',
32 | TemplateView.as_view(template_name='registration/activation_complete.html'),
33 | name='registration_activation_complete'),
34 | # Activation keys get matched by \w+ instead of the more specific
35 | # [a-fA-F0-9]{40} because a bad activation key should still get to the view;
36 | # that way it can return a sensible "invalid key" message instead of a
37 | # confusing 404.
38 | url(r'^activate/(?P\w+)/$',
39 | activate,
40 | {'backend': 'registration.backends.default.DefaultBackend'},
41 | name='registration_activate'),
42 | url(r'^register/$',
43 | register,
44 | {'backend': 'registration.backends.default.DefaultBackend',
45 | 'form_class': RegistrationFormCaptcha},
46 | name='registration_register'),
47 | url(r'^register/complete/$',
48 | TemplateView.as_view(template_name='registration/registration_complete.html'),
49 | name='registration_complete'),
50 | url(r'^register/closed/$',
51 | TemplateView.as_view(template_name='registration/registration_closed.html'),
52 | name='registration_disallowed'),
53 | url(r'', include('registration.auth_urls')),
54 | ]
55 |
--------------------------------------------------------------------------------
/registration/locale/ja/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # Shinya Okano , YEAR.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: django-registration 0.4 \n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2007-09-19 19:30-0500\n"
12 | "PO-Revision-Date: 2008-01-31 10:20+0900\n"
13 | "Last-Translator: Shinya Okano \n"
14 | "Language-Team: Japanese \n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | #: forms.py:38
20 | msgid "username"
21 | msgstr "ユーザ名"
22 |
23 | #: forms.py:41
24 | msgid "email address"
25 | msgstr "メールアドレス"
26 |
27 | #: forms.py:43
28 | msgid "password"
29 | msgstr "パスワード"
30 |
31 | #: forms.py:45
32 | msgid "password (again)"
33 | msgstr "パスワード (確認)"
34 |
35 | #: forms.py:54
36 | msgid "Usernames can only contain letters, numbers and underscores"
37 | msgstr "ユーザ名には半角英数とアンダースコアのみが使用できます。"
38 |
39 | #: forms.py:59
40 | msgid "This username is already taken. Please choose another."
41 | msgstr "このユーザ名は既に使用されています。他のユーザ名を指定してください。"
42 |
43 | #: forms.py:68
44 | msgid "You must type the same password each time"
45 | msgstr "同じパスワードを入力する必要があります。"
46 |
47 | #: forms.py:96
48 | msgid "I have read and agree to the Terms of Service"
49 | msgstr "サービス利用規約を読み、同意します。"
50 |
51 | #: forms.py:105
52 | msgid "You must agree to the terms to register"
53 | msgstr "登録するためには規約に同意する必要があります。"
54 |
55 | #: forms.py:124
56 | msgid "This email address is already in use. Please supply a different email address."
57 | msgstr "このメールアドレスは既に使用されています。他のメールアドレスを指定して下さい。"
58 |
59 | #: forms.py:149
60 | msgid "Registration using free email addresses is prohibited. Please supply a different email address."
61 | msgstr "自由なメールアドレスを使用した登録は禁止されています。他のメールアドレスを指定してください。"
62 |
63 | #: models.py:188
64 | msgid "user"
65 | msgstr "ユーザ"
66 |
67 | #: models.py:189
68 | msgid "activation key"
69 | msgstr "アクティベーションキー"
70 |
71 | #: models.py:194
72 | msgid "registration profile"
73 | msgstr "登録プロファイル"
74 |
75 | #: models.py:195
76 | msgid "registration profiles"
77 | msgstr "登録プロファイル"
78 |
79 |
--------------------------------------------------------------------------------
/templates/comments/preview.html:
--------------------------------------------------------------------------------
1 | {% extends "base_2col.html" %}
2 | {% block sectionid %}browse{% endblock %}
3 |
4 | {% block title %}Preview your comment submission{% endblock %}
5 |
6 | {% block billboard %}Preview your comment submission{% endblock %}
7 |
8 | {% block content %}
9 | {% load comments %}
10 | {% load markup %}
11 | {% load safe_markup %}
12 |
13 |
75 |
76 | {% endblock %}
77 |
--------------------------------------------------------------------------------
/registration/locale/he/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # translation of registration.
2 | # Copyright (C) 2008 THE registration'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the registration package.
4 | # <>, 2008.
5 | # , fuzzy
6 | # <>, 2008.
7 | #
8 | #
9 | msgid ""
10 | msgstr ""
11 | "Project-Id-Version: registration\n"
12 | "Report-Msgid-Bugs-To: \n"
13 | "POT-Creation-Date: 2008-02-10 02:01+0200\n"
14 | "PO-Revision-Date: 2008-02-10 02:05+0200\n"
15 | "Last-Translator: Meir Kriheli \n"
16 | "Language-Team: Hebrew\n"
17 | "MIME-Version: 1.0\n"
18 | "Content-Type: text/plain; charset=UTF-8\n"
19 | "Content-Transfer-Encoding: 8bit"
20 |
21 | #: forms.py:38
22 | msgid "username"
23 | msgstr "שם משתמש"
24 |
25 | #: forms.py:41
26 | msgid "email address"
27 | msgstr "דואר אלקטרוני"
28 |
29 | #: forms.py:43
30 | msgid "password"
31 | msgstr "סיסמה"
32 |
33 | #: forms.py:45
34 | msgid "password (again)"
35 | msgstr "סיסמה (שוב)"
36 |
37 | #: forms.py:54
38 | msgid "Usernames can only contain letters, numbers and underscores"
39 | msgstr "שמות משתמש יכולים להכיל רק אותיות, ספרות וקווים תחתונים"
40 |
41 | #: forms.py:59
42 | msgid "This username is already taken. Please choose another."
43 | msgstr "שם המשתמש תפוס כבר. נא לבחור אחר."
44 |
45 | #: forms.py:64
46 | msgid "You must type the same password each time"
47 | msgstr "יש להקליד את אותה הסיסמה פעמיים"
48 |
49 | #: forms.py:93
50 | msgid "I have read and agree to the Terms of Service"
51 | msgstr "קראתי והסכמתי לתנאי השימוש"
52 |
53 | #: forms.py:102
54 | msgid "You must agree to the terms to register"
55 | msgstr "עליך להסכים לתנאי השימוש"
56 |
57 | #: forms.py:121
58 | msgid ""
59 | "This email address is already in use. Please supply a different email "
60 | "address."
61 | msgstr ""
62 | "כתובת הדואר האלקטרוני תפוסה כבר. נא לספק כתובת דואר אחרת."
63 |
64 | #: forms.py:146
65 | msgid ""
66 | "Registration using free email addresses is prohibited. Please supply a "
67 | "different email address."
68 | msgstr ""
69 | "הרישום בעזרת תיבת דואר אלקטרוני חינמית אסור. נא לספק כתובת אחרת."
70 |
71 | #: models.py:188
72 | msgid "user"
73 | msgstr "משתמש"
74 |
75 | #: models.py:189
76 | msgid "activation key"
77 | msgstr "מפתח הפעלה"
78 |
79 | #: models.py:194
80 | msgid "registration profile"
81 | msgstr "פרופיל רישום"
82 |
83 | #: models.py:195
84 | msgid "registration profiles"
85 | msgstr "פרופילי רישום"
86 |
87 |
--------------------------------------------------------------------------------
/registration/locale/ko/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # Young Gyu Park , 2009.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: PACKAGE VERSION\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2009-10-12 14:09-0500\n"
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 | "Last-Translator: Young Gyu Park \n"
14 | "Language-Team: LANGUAGE \n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | #: admin.py:23
20 | msgid "Activate users"
21 | msgstr "활동 사용자"
22 |
23 | #: admin.py:43
24 | msgid "Re-send activation emails"
25 | msgstr "이 메일 제 전송"
26 |
27 | #: forms.py:35
28 | msgid "username"
29 | msgstr "사용자 아이디"
30 |
31 | #: forms.py:36
32 | msgid "This value must contain only letters, numbers and underscores."
33 | msgstr "이 곳에는 숫자, _, 영문 글자만 가능합니다."
34 |
35 | #: forms.py:39
36 | msgid "Email address"
37 | msgstr "이메일 주소"
38 |
39 | #: forms.py:41
40 | msgid "Password"
41 | msgstr "사용자 패스워드"
42 |
43 | #: forms.py:43
44 | msgid "Password (again)"
45 | msgstr "패스워드 (재입력)"
46 |
47 | #: forms.py:55
48 | msgid "A user with that username already exists."
49 | msgstr "이미 같은 아이디로 사용자가 등록되어 있습니다."
50 |
51 | #: forms.py:67
52 | msgid "The two password fields didn't match."
53 | msgstr "패스워드가 서로 일치하지 않습니다."
54 |
55 | #: forms.py:78
56 | msgid "I have read and agree to the Terms of Service"
57 | msgstr "약관을 읽었고 그 내용에 동의합니다."
58 |
59 | #: forms.py:79
60 | msgid "You must agree to the terms to register"
61 | msgstr "약관에 동의 하셔야만 합니다."
62 |
63 | #: forms.py:95
64 | msgid ""
65 | "This email address is already in use. Please supply a different email "
66 | "address."
67 | msgstr "이메일이 이미 사용중입니다. 다른 이메일을 등록해 주세요."
68 |
69 | #: forms.py:122
70 | msgid ""
71 | "Registration using free email addresses is prohibited. Please supply a "
72 | "different email address."
73 | msgstr "무료 이메일 계정으로 등록하실 수 없습니다. 다른 이메일을 등록해 주세요"
74 |
75 | #: models.py:165
76 | msgid "user"
77 | msgstr "사용자"
78 |
79 | #: models.py:166
80 | msgid "activation key"
81 | msgstr "활성화 키"
82 |
83 | #: models.py:171
84 | msgid "registration profile"
85 | msgstr "등록 프로파일"
86 |
87 | #: models.py:172
88 | msgid "registration profiles"
89 | msgstr "등록 프로파일"
90 |
--------------------------------------------------------------------------------
/community/feeds.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import get_object_or_404
2 | from django.contrib.sites.models import Site
3 | from django.http import HttpResponse, Http404
4 | from django.utils.xmlutils import SimplerXMLGenerator
5 | from community.models import Forum,Thread,Post
6 | from markdown2 import markdown
7 | from wfwfeed import WellFormedWebRss
8 |
9 | def ForumFeed(request, forum):
10 | f = get_object_or_404(Forum, slug=forum)
11 | try:
12 | object_list = f.thread_set.all()
13 | except documents.DocumentDoesNotExist:
14 | raise Http404
15 | feed = WellFormedWebRss( u"mloss.org community forum %s" % f.title.encode('utf-8'),
16 | "http://mloss.org",
17 | u'Updates to mloss.org forum %s' % f.title.encode('utf-8'),
18 | language=u"en")
19 |
20 | for thread in object_list:
21 | link = u'http://%s%s' % (Site.objects.get_current().domain, thread.get_absolute_url())
22 | commentlink=u'http://%s%s' % (Site.objects.get_current().domain, thread.get_absolute_url())
23 | commentrss=u'http://%s/community/rss/thread/%i' % (Site.objects.get_current().domain, thread.id)
24 | feed.add_item( thread.title.encode('utf-8'),
25 | commentlink, None,
26 | comments=commentlink,
27 | pubdate=thread.thread_latest_post.time, unique_id=link)
28 | feed.add_commentRss(commentrss)
29 |
30 | response = HttpResponse(mimetype='application/xml')
31 | feed.write(response, 'utf-8')
32 | return response
33 |
34 | def ThreadFeed(request, forum, thread):
35 | thread = get_object_or_404(Thread, pk=thread)
36 |
37 | feed = WellFormedWebRss( u"mloss.org community forum",
38 | "http://mloss.org",
39 | u'Updates to mloss.org thread %s' % thread.title.encode('utf-8'),
40 | language=u"en")
41 |
42 | for post in thread.post_set.all().order_by('time'):
43 | link = u'http://%s%s' % (Site.objects.get_current().domain, post.get_absolute_url())
44 | feed.add_item(u'By: %s on: %s' % (post.author.username, post.time.strftime("%Y-%m-%d %H:%M")),
45 | link, markdown(post.body),
46 | author_name=post.author.username,
47 | pubdate=post.time, unique_id=link)
48 |
49 | response = HttpResponse(mimetype='application/xml')
50 | feed.write(response, 'utf-8')
51 | return response
52 |
--------------------------------------------------------------------------------
/registration/auth_urls.py:
--------------------------------------------------------------------------------
1 | """
2 | URL patterns for the views included in ``django.contrib.auth``.
3 |
4 | Including these URLs (via the ``include()`` directive) will set up the
5 | following patterns based at whatever URL prefix they are included
6 | under:
7 |
8 | * User login at ``login/``.
9 |
10 | * User logout at ``logout/``.
11 |
12 | * The two-step password change at ``password/change/`` and
13 | ``password/change/done/``.
14 |
15 | * The four-step password reset at ``password/reset/``,
16 | ``password/reset/confirm/``, ``password/reset/complete/`` and
17 | ``password/reset/done/``.
18 |
19 | The default registration backend already has an ``include()`` for
20 | these URLs, so under the default setup it is not necessary to manually
21 | include these views. Other backends may or may not include them;
22 | consult a specific backend's documentation for details.
23 |
24 | """
25 |
26 | from django.conf.urls import url, include
27 |
28 | from django.contrib.auth.views import (login,
29 | logout,
30 | password_reset,
31 | password_reset_done,
32 | password_reset_confirm,
33 | )
34 |
35 | from django.contrib.auth import views as auth_views
36 |
37 |
38 | urlpatterns = [
39 | url(r'^login/$',
40 | auth_views.login,
41 | {'template_name': 'registration/login.html'},
42 | name='login'),
43 | url(r'^logout/$',
44 | auth_views.logout,
45 | {'template_name': 'registration/logout.html'},
46 | name='logout'),
47 | url(r'^password/change/$',
48 | auth_views.password_change,
49 | name='password_change'),
50 | url(r'^password/change/done/$',
51 | auth_views.password_change_done,
52 | name='password_change_done'),
53 | url(r'^password/reset/$',
54 | auth_views.password_reset,
55 | name='password_reset'),
56 | url(r'^password/reset/confirm/(?P[0-9A-Za-z]+)-(?P.+)/$',
57 | auth_views.password_reset_confirm,
58 | name='password_reset_confirm'),
59 | url(r'^password/reset/complete/$',
60 | auth_views.password_reset_complete,
61 | name='password_reset_complete'),
62 | url(r'^password/reset/done/$',
63 | auth_views.password_reset_done,
64 | name='password_reset_done'),
65 | ]
66 |
--------------------------------------------------------------------------------
/registration/locale/sv/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: PACKAGE VERSION\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2008-03-23 18:59+0100\n"
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 | "Last-Translator: Emil Stenström \n"
14 | "Language-Team: LANGUAGE \n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | #: .\forms.py:38
20 | msgid "username"
21 | msgstr "Användarnamn"
22 |
23 | #: .\forms.py:41
24 | msgid "email address"
25 | msgstr "E-postadress"
26 |
27 | #: .\forms.py:43
28 | msgid "password"
29 | msgstr "Lösenord"
30 |
31 | #: .\forms.py:45
32 | msgid "password (again)"
33 | msgstr "Lösenord (igen)"
34 |
35 | #: .\forms.py:54
36 | msgid "Usernames can only contain letters, numbers and underscores"
37 | msgstr "Användarnamn får bara innehålla bokstäver, siffror och understreck"
38 |
39 | #: .\forms.py:59
40 | msgid "This username is already taken. Please choose another."
41 | msgstr "Det användarnamnet är upptaget. Prova ett annat."
42 |
43 | #: .\forms.py:71
44 | msgid "You must type the same password each time"
45 | msgstr "Båda lösenord måste vara lika"
46 |
47 | #: .\forms.py:100
48 | msgid "I have read and agree to the Terms of Service"
49 | msgstr "Jag har läst och accepterar avtalet"
50 |
51 | #: .\forms.py:109
52 | msgid "You must agree to the terms to register"
53 | msgstr "Du måste acceptera avtalet för att registrera dig"
54 |
55 | #: .\forms.py:128
56 | msgid ""
57 | "This email address is already in use. Please supply a different email "
58 | "address."
59 | msgstr "Den e-postadressen är upptagen, använd an annan adress."
60 |
61 | #: .\forms.py:153
62 | msgid ""
63 | "Registration using free email addresses is prohibited. Please supply a "
64 | "different email address."
65 | msgstr "Gratis e-postadresser är inte tillåtna, använd en annan adress."
66 |
67 | #: .\models.py:188
68 | msgid "user"
69 | msgstr "Användare"
70 |
71 | #: .\models.py:189
72 | msgid "activation key"
73 | msgstr "Aktiveringsnyckel"
74 |
75 | #: .\models.py:194
76 | msgid "registration profile"
77 | msgstr "Profil"
78 |
79 | #: .\models.py:195
80 | msgid "registration profiles"
81 | msgstr "Profiler"
82 |
--------------------------------------------------------------------------------
/registration/locale/ar/LC_MESSAGES/django.po:
--------------------------------------------------------------------------------
1 | # SOME DESCRIPTIVE TITLE.
2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 | # This file is distributed under the same license as the PACKAGE package.
4 | # FIRST AUTHOR , YEAR.
5 | #
6 | #, fuzzy
7 | msgid ""
8 | msgstr ""
9 | "Project-Id-Version: PACKAGE VERSION\n"
10 | "Report-Msgid-Bugs-To: \n"
11 | "POT-Creation-Date: 2007-09-19 19:30-0500\n"
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 | "Last-Translator: FULL NAME \n"
14 | "Language-Team: LANGUAGE \n"
15 | "MIME-Version: 1.0\n"
16 | "Content-Type: text/plain; charset=UTF-8\n"
17 | "Content-Transfer-Encoding: 8bit\n"
18 |
19 | #: forms.py:38
20 | msgid "username"
21 | msgstr "اسم المستخدم"
22 |
23 | #: forms.py:41
24 | msgid "email address"
25 | msgstr "عنوان البريد الالكتروني"
26 |
27 | #: forms.py:43
28 | msgid "password"
29 | msgstr "كلمة المرور"
30 |
31 | #: forms.py:45
32 | msgid "password (again)"
33 | msgstr "تأكيد كلمة المرور"
34 |
35 | #: forms.py:54
36 | msgid "Usernames can only contain letters, numbers and underscores"
37 | msgstr "يمكن أن يحتوي اسم المستخدم على احرف، ارقام وشرطات سطرية فقط"
38 |
39 | #: forms.py:59
40 | msgid "This username is already taken. Please choose another."
41 | msgstr "اسم المستخدم مسجل مسبقا. يرجى اختيار اسم اخر."
42 |
43 | #: forms.py:68
44 | msgid "You must type the same password each time"
45 | msgstr "يجب ادخال كلمة المرور مطابقة كل مرة"
46 |
47 | #: forms.py:96
48 | msgid "I have read and agree to the Terms of Service"
49 | msgstr "أقر بقراءة والموافقة على شروط الخدمة"
50 |
51 | #: forms.py:105
52 | msgid "You must agree to the terms to register"
53 | msgstr "يجب الموافقة على الشروط للتسجيل"
54 |
55 | #: forms.py:124
56 | msgid ""
57 | "This email address is already in use. Please supply a different email "
58 | "address."
59 | msgstr "عنوان البريد الالكتروني مسجل مسبقا. يرجى تزويد عنوان بريد الكتروني مختلف."
60 |
61 | #: forms.py:149
62 | msgid ""
63 | "Registration using free email addresses is prohibited. Please supply a "
64 | "different email address."
65 | msgstr "يمنع التسجيل باستخدام عناوين بريد الكترونية مجانية. يرجى تزويد عنوان بريد الكتروني مختلف."
66 |
67 | #: models.py:188
68 | msgid "user"
69 | msgstr "مستخدم"
70 |
71 | #: models.py:189
72 | msgid "activation key"
73 | msgstr "رمز التفعيل"
74 |
75 | #: models.py:194
76 | msgid "registration profile"
77 | msgstr "ملف التسجيل الشخصي"
78 |
79 | #: models.py:195
80 | msgid "registration profiles"
81 | msgstr "ملفات التسجيل الشخصية"
82 |
--------------------------------------------------------------------------------
/templates/registration/registration_form.html:
--------------------------------------------------------------------------------
1 | {% extends "base_2col.html" %}
2 |
3 | {% block sectionid %}login{% endblock %}
4 |
5 | {% block title %}Sign up{% endblock %}
6 |
7 | {% block billboard %}Sign up{% endblock %}
8 |
9 | {% block content-related %}
10 |
Fill out the form to the right (all fields are required), and your account will be created; you'll be sent an email with instructions on how to finish your registration.
22 |- {{ comment.name }} (on {{ comment.submit_date|date:"F j, Y, H:i:s" }})
23 | - {{ comment.comment|markdown:"safe" }}
24 |
25 |