Merge branch 'main' into events

This commit is contained in:
Danhia 2022-02-04 19:04:20 +01:00
commit f9ae6edc13
41 changed files with 1433 additions and 977 deletions

View File

@ -0,0 +1,33 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Delete account" %}</h3>
</div>
<div class="ctf-body">
{% trans "Please confirm your password to delete your account." %}<br>
{% trans "Deleted accounts cannot be recovered." %}<br><br>
<div class="col-sm-8 col-md-6 mx-auto">
{% if bad_password %}
<span class="message error-msg">{% trans "Password inccorect." %}</span>
{% elif deleted %}
<span class="message success-msg">{% trans "Your account has been deleted." %}</span>
{% endif %}
<form method="post">
{% csrf_token %}
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %}"></br>
<input class="form-control" type="submit" value="Delete">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -54,6 +54,14 @@
{% endif %}
<li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li>
</ul>
<ul class="list-group">
<form method='GET' action="{% url 'accounts:delete_account' %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Delete my account" %}">
</li>
</form>
</ul>
</div>
</div>
{% endblock %}

View File

@ -12,5 +12,6 @@ urlpatterns = [
path('rank/<str:token>', views.rank, name='rank'),
path('connections/connect/discord', views.connection.connect, name='connections-connect-discord'),
path('connections/connect/discord/authorize', views.connection.authorize, name='connections-connect-discord-authorize'),
path('connections/disconnect/discord', views.connection.disconnect, name='connections-disconnect-discord')
path('connections/disconnect/discord', views.connection.disconnect, name='connections-disconnect-discord'),
path('delete_account/', views.delete_account, name='delete_account'),
]

View File

@ -124,16 +124,18 @@ def profile(request, user_name):
member = True
else:
member = False
cats = Category.objects.all()
all_cats = Category.objects.all()
cats = [cat for cat in all_cats if CTF.objects.filter(category__name=cat.name, event=None, disabled=False)]
pointDatas = {}
for cat in cats:
# prepare categories
solved_count = CTF_flags.objects.filter(user=user_obj, ctf__event=None , ctf__category__name=cat.name).count()
max_count = CTF.objects.filter(category__name=cat.name, event=None).count()
solved = CTF_flags.objects.filter(user=user_obj, ctf__category__name=cat.name, ctf__event=None, ctf__disabled=False).order_by('flag_date')
max_count = CTF.objects.filter(category__name=cat.name, event=None, disabled=False).count()
# get datas
somme = 0
solved = CTF_flags.objects.filter(user=user_obj, ctf__category__name=cat.name, ctf__event=None).order_by('flag_date')
solved_count = len(solved)
pointDatas[cat.name] = []
pointDatas[cat.name].append([user_obj.date_joined.timestamp() * 1000, 0])
percent = (solved_count / max_count) * 100
@ -142,7 +144,7 @@ def profile(request, user_name):
somme += flag.ctf.points
pointDatas[cat.name].append([flag.flag_date.timestamp() * 1000, somme])
solves = CTF_flags.objects.filter(user=user_obj, ctf__event=None).order_by('-flag_date')
solves = CTF_flags.objects.filter(user=user_obj, ctf__event=None, ctf__disabled=False).order_by('-flag_date')
solved = []
somme = 0
solved.append([user_obj.date_joined.timestamp() * 1000, 0])
@ -151,7 +153,7 @@ def profile(request, user_name):
solved.append([s.flag_date.timestamp() * 1000,somme])
return render(request,'accounts/profile.html', {'user':user_obj, 'solves':solves,'solved':solved,'catsDatas': catsDatas, 'pointDatas': pointDatas,
'rank': rank, 'score' : somme, 'member' : member})
'rank': rank, 'score' : somme, 'member' : member, 'cats':cats})
def rank(request, token):
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username')
@ -163,3 +165,20 @@ def rank(request, token):
rank += 1
data = {"rank": rank}
return JsonResponse(data)
@login_required
def delete_account(request):
if request.method == 'POST':
user = request.user
password = request.POST.get('password')
if user.check_password(password):
logout(request)
user.delete()
return render(request, 'accounts/delete.html', {'deleted': True, 'bad_password': False})
else:
return render(request, 'accounts/delete.html', {'deleted': False, 'bad_password': True})
else:
return render(request, 'accounts/delete.html', {'deleted': False, 'bad_password': False} )

View File

View File

View File

@ -0,0 +1,28 @@
from collections import defaultdict
from django.core.management.base import BaseCommand, CommandError
from accounts.models import UserProfileInfo
from ctfs.models import CTF_flags, CTF
from math import log
class Command(BaseCommand):
help = 'Actualize challenges points based on number of solves'
def handle(self, *args, **options):
challenges = CTF.objects.filter(event=None, disabled=False).exclude(category__name="-Intro-")
for ctf in challenges:
solves = CTF_flags.objects.filter(ctf=ctf)
nb_solves = len(solves)
if nb_solves > 0:
new_points = max(200 - int(log(nb_solves)*8.5)*5, 5)
else:
new_points = 200
if new_points != ctf.points:
diff = ctf.points - new_points
ctf.points = new_points
ctf.save()
for s in solves:
s.user.userprofileinfo.score -= diff
s.user.userprofileinfo.save()

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.5 on 2022-02-03 17:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ctfs', '0006_alter_ctf_event'),
]
operations = [
migrations.AddField(
model_name='ctf',
name='disabled',
field=models.BooleanField(default=False),
),
]

View File

@ -12,6 +12,7 @@ class Category(models.Model):
class CTF(models.Model):
name = models.CharField(max_length=200)
flag = models.CharField(max_length=100)
disabled = models.BooleanField(default=False)
description = models.TextField(blank=True)
description_en = models.TextField(blank=True)
description_ru = models.TextField(blank=True)

View File

@ -1,6 +1,7 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% load is_member %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="ctf-block">
@ -66,7 +67,8 @@
<tbody>
{% for s in solved_list %}
<tr>
<th scope="row"><a class="profile_link" href="{% url 'accounts:profile' user_name=s.user.username %}"> {{ s.user.username }}</a></th>
{% ismember s.user.userprofileinfo as is_member %}
<th scope="row"><a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=s.user.username %}"> {{ s.user.username }}</a></th>
<td>{{ s.user.userprofileinfo.portfolio_site }}</td>
<td>{{ s.user.userprofileinfo.score }}</td>
<td>{{ s.flag_date }}</td>
@ -81,8 +83,9 @@
</div>
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group">
<li class="list-group-item">{% trans "Author" %} : {{ ctf.author.username }}</li>
<li class="list-group-item">{% trans "Point reward" %} : {{ ctf.points }}</li>
{% ismember ctf.author.userprofileinfo as is_member %}
<li class="list-group-item">{% trans "Author" %} : <a style="position:absolute;right: 15px;" class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=ctf.author.username %}">{{ ctf.author.username }}</a></li>
<li class="list-group-item">{% trans "Point reward" %} : <span style="position:absolute;right: 15px;">{{ ctf.points }}</span></li>
</ul>
</div>

View File

@ -5,6 +5,8 @@ from .models import Category, CTF, CTF_flags
from .forms import submit_flag
from accounts.models import UserProfileInfo
from django.utils.translation import get_language
from math import log
from accounts.models import UserProfileInfo
def get_description_by_lang(ctf):
lang = get_language()
@ -19,16 +21,33 @@ def get_description_by_lang(ctf):
ret = ctf.description_ru
return ret
def actualize_points(ctf):
if ctf.category.name == "-Intro-":
return
solves = CTF_flags.objects.filter(ctf=ctf)
nb_solves = len(solves)
new_points = max(200 - int(log(nb_solves)*8.5)*5, 5)
if new_points != ctf.points:
diff = ctf.points - new_points
ctf.points = new_points
ctf.save()
for s in solves:
s.user.userprofileinfo.score -= diff
s.user.userprofileinfo.save()
def category(request, cat_slug):
cat = get_object_or_404(Category, slug=cat_slug)
ctfs = CTF.objects.filter(category=cat, event=None).order_by('points')
ctfs = CTF.objects.filter(category=cat, event=None, disabled=False).order_by('points')
for ex in ctfs:
ex.solved_num = CTF_flags.objects.filter(ctf=ex).count()
ex.solved = ex.solved_by(request.user)
return render(request, 'ctfs/ctfs_list.html', {'ctfs' : ctfs, 'cat' : cat})
def ctf(request, cat_slug, ctf_slug):
ctf_info = get_object_or_404(CTF, slug=ctf_slug)
ctf_info = get_object_or_404(CTF, slug=ctf_slug, event=None)
flagged = False
solved_list = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
description = get_description_by_lang(ctf_info)
@ -39,13 +58,14 @@ def ctf(request, cat_slug, ctf_slug):
if request.user.is_authenticated:
form = submit_flag(data=request.POST)
if flagged == False and form.is_valid():
if CTF.objects.filter(flag=request.POST.get('flag'), slug=ctf_slug):
if CTF.objects.filter(flag=request.POST.get('flag'), slug=ctf_slug, event=None):
new = CTF_flags(user = request.user, ctf = ctf_info, flag_date = timezone.now())
new.save()
profil = UserProfileInfo.objects.get(user=request.user)
profil.last_submission_date = timezone.now()
profil.score += ctf_info.points
profil.save()
actualize_points(ctf_info)
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True, 'description': description, 'date': timezone.now()})
else:
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True, 'description': description, 'date': timezone.now()})

View File

@ -11,26 +11,26 @@
<div class="ctf-footer">
<div class="col-sm-8 col-md-6 mx-auto">
{% if logged == True%}
{% if logged == True%}
{% if registered == False %}
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
{% else %}
{% if exist == True %}
<span class="message error-msg">{% trans "Name already taken." %}</span>
{% endif %}
{% if exist == True %}
<span class="message error-msg">{% trans "Name already taken." %}</span>
{% endif %}
<h2>Create Team</h2>
<form method="post" action="{% url 'events:create_team' event_slug=event.slug %}" class="create-team-form">
{% csrf_token %}
<div class="form-group">
<input class="form-control" type="text" name="teamname" placeholder="{% trans "Team name" %} *" maxlength="150" required="" id="id_teamname"></br>
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
<input type="submit" name="" class="form-control" value="{% trans "Create Team" %}">
</div>
{% csrf_token %}
<div class="form-group">
<input class="form-control" type="text" name="teamname" placeholder="{% trans "Team name" %} *" maxlength="150" required="" id="id_teamname"></br>
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
<input type="submit" name="" class="form-control" value="{% trans "Create Team" %}">
</div>
</form>
{% endif %}
{% else %}
{% else %}
<h4>{% trans "You need to be logged to access this event." %}</h4>
{% endif %}
{% endif %}
</div>
</div>
</div>
@ -43,19 +43,21 @@
</ul>
<ul class="list-group">
<li class="list-group-item">{% trans "Manage team" %}</li>
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">→{% trans "Join Team" %}</a>
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
</ul>
{% if event.auto_match %}
<ul class="list-group">
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
</li>
</form>
</ul>
{% endif %}
</ul>
{% if event.auto_match %}
<ul class="list-group">
<li class="list-group-item">{% trans "No team yet ?" %}</li>
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
</li>
</form>
</ul>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -1,6 +1,7 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% load is_member %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="ctf-block">
@ -75,8 +76,9 @@
<tbody>
{% for s in solved_list %}
{% if event.team_size == 1%}
{% ismember s.0.userprofileinfo as is_member %}
<tr>
<th scope="row"><a class="profile_link" href="{% url 'events:profile' user_name=s.0.username event_slug=event.slug %}"> {{ s.0.username }}</a></th>
<th scope="row"><a class="profile_link {{is_member}}" href="{% url 'events:profile' user_name=s.0.username event_slug=event.slug %}"> {{ s.0.username }}</a></th>
<td>{{ s.0.userprofileinfo.portfolio_site }}</td>
<td>{{ s.1 }}</td>
</tr>
@ -96,9 +98,10 @@
</div>
</div>
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
{% ismember ctf.author.userprofileinfo as is_member %}
<ul class="list-group">
<li class="list-group-item">{% trans "Author" %} : {{ ctf.author.username }}</li>
<li class="list-group-item">{% trans "Point reward" %} : {{ ctf.points }}</li>
<li class="list-group-item">{% trans "Author" %} : <a style="position:absolute;right: 15px;" class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=ctf.author.username %}">{{ ctf.author.username }}</a></li>
<li class="list-group-item">{% trans "Point reward" %} : <span style="position:absolute;right: 15px;">{{ ctf.points }}</span></li>
</ul>
</div>

View File

@ -2,6 +2,7 @@
{% block content %}
{% load i18n %}
{% load is_flagged %}
{% load is_member %}
<div class="row">
<div class="col-sm-12 col-md-9">
{% if subisover == True %}
@ -68,9 +69,10 @@
<tbody>
{% for s in solved_list %}
<tr>
{% ismember s.user.userprofileinfo as is_member %}
<th scope="row"># {{ forloop.counter0|add:1 }}</th>
<th scope="row">
<a class="profile_link" href="{% url 'events:profile' user_name=s.user.username event_slug=event.slug %}"> {{ s.user.username }}</a>
<a class="profile_link {{is_member}}" href="{% url 'events:profile' user_name=s.user.username event_slug=event.slug %}"> {{ s.user.username }}</a>
</th>
<td>{{ s.user.userprofileinfo.site }}</td>
<td>{{ s.score }}</td>
@ -108,8 +110,8 @@
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group">
<li class="list-group-item">{{ event.name }}</li>
<li class="list-group-item">{% trans "Starts at" %} : {{ event.start_date | date:'H:i d-m-y'}}</li>
<li class="list-group-item">{% trans "Ends at" %} : {{ event.end_date | date:'H:i d-m-y'}}</li>
<li class="list-group-item">{% trans "Starts at" %} : <span style="position:absolute;right: 15px;">{{ event.start_date | date:'H:i d-m-y'}}</span></li>
<li class="list-group-item">{% trans "Ends at" %} : <span style="position:absolute;right: 15px;">{{ event.end_date | date:'H:i d-m-y'}}</span></li>
{% if ended == False and IsRegistered == False %}
<form method='POST' action="{% url 'events:register_event' event_slug=event.slug %}">
{%csrf_token%}

View File

@ -11,18 +11,18 @@
<div class="ctf-footer">
<div class="col-sm-8 col-md-6 mx-auto">
{% if logged == True%}
{% if logged == True%}
{% if registered == False %}
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
{% else %}
{% if notexist == True %}
<span class="message error-msg">{% trans "Team does not exist." %}</span>
{% elif wrongpwd == True %}
<span class="message error-msg">{% trans "Wrong password submited." %}</span>
{% elif max == True %}
<span class="message error-msg">{% trans "Maximum size reached." %}</span>
{% elif exist == True %}
{% endif %}
{% if notexist == True %}
<span class="message error-msg">{% trans "Team does not exist." %}</span>
{% elif wrongpwd == True %}
<span class="message error-msg">{% trans "Wrong password submited." %}</span>
{% elif max == True %}
<span class="message error-msg">{% trans "Maximum size reached." %}</span>
{% elif exist == True %}
{% endif %}
<h2>Join Team</h2>
<form method="post" action="{% url 'events:join_team' event_slug=event.slug %}" class="join-team-form">
{% csrf_token %}
@ -31,11 +31,11 @@
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
<input type="submit" name="" class="form-control" value="{% trans "Join Team" %}">
</div>
</form>
</form>
{% endif %}
{% else %}
{% else %}
<h4>{% trans "You need to be logged to access this event." %}</h4>
{% endif %}
{% endif %}
</div>
</div>
</div>
@ -43,24 +43,26 @@
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group">
<li class="list-group-item">{{ event.name }}</li>
<li class="list-group-item">{% trans "Starts at" %} : {{ event.start_date | date:'H:i d-m-y' }}</li>
<li class="list-group-item">{% trans "Ends at" %} : {{ event.end_date | date:'H:i d-m-y' }}</li>
<li class="list-group-item">{% trans "Starts at" %} : {{ event.start_date | date:'H:i d-m-y'}}</li>
<li class="list-group-item">{% trans "Ends at" %} : {{ event.end_date | date:'H:i d-m-y'}}</li>
</ul>
<ul class="list-group">
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
<li class="list-group-item">{% trans "Manage team" %}</li>
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
</ul>
{% if event.auto_match %}
<ul class="list-group">
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
</li>
</form>
</ul>
{% endif %}
</ul>
{% if event.auto_match %}
<ul class="list-group">
<li class="list-group-item">{% trans "No team yet ?" %}</li>
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
</li>
</form>
</ul>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -4,7 +4,30 @@
{% get_current_language as lang %}
{% load is_member %}
<div class="row">
<div class="col-lg-9 col-sm-12 news-card">
<div class="col-lg-3 col-sm-12 right-sidebar middle-sm">
<ul class="list-group">
<li class="list-group-item">Top 10</li>
{% for t in top %}
{% ismember t.user.userprofileinfo as is_member %}
<li class="list-group-item text-truncate"># {{ forloop.counter }}
<a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=t.user.username %}"> {{ t.user.username }}</a>
<span style="position:absolute;right: 15px;">{{ t.score }}</span></li>
{% endfor %}
</ul>
<ul class="list-group">
<li class="list-group-item">{% trans "Weekly Top 5" %}</li>
{% for user, score in top_weekly %}
{% ismember user as is_member %}
<li class="list-group-item text-truncate"># {{ forloop.counter }}
<a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=user %}"> {{ user }}</a>
<span style="position:absolute;right: 15px;">{{ score }}</span></li>
{% endfor %}
</ul>
</div>
<div class="col-lg-6 col-sm-12 news-card top-sm">
{% if news %}
{% for n in news %}
<div class="card text-center news-card">
@ -33,30 +56,46 @@
<p class="text-center">{% trans "No article available." %}</p>
{% endif %}
</div>
<div class="col-lg-3 col-sm-12 right-sidebar">
<div class="col-lg-3 col-sm-12 right-sidebar bottom-sm">
<ul class="list-group">
<li class="list-group-item active">{% trans "Latest challenges added" %}</li>
{% if ctfs %}
{% for ctf in ctfs %}
<a class="list-group-item" href="{% url 'ctf' cat_slug=ctf.category.slug ctf_slug=ctf.slug %}">{{ ctf.name }}</a>
<li class="list-group-item">
<a class="ctf-link" href="{% url 'ctf' cat_slug=ctf.category.slug ctf_slug=ctf.slug %}">{{ ctf.name }}</a>
<span style="position:absolute;right: 15px;">{{ctf.points}} {% trans "points" %}</span>
</li>
{% endfor %}
{% else %}
<li class="list-group-item">{% trans "No ctf available." %}</li>
<li class="list-group-item">{% trans "No ctf available." %}</li>
{% endif %}
</ul>
<ul class="list-group">
<li class="list-group-item">Top 10</li>
{% for t in top %}
{% ismember t.user.userprofileinfo as is_member %}
<li class="list-group-item"># {{ forloop.counter }}
<a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=t.user.username %}"> {{ t.user.username }}</a>
<span style="position:absolute;right: 15px;">{{ t.score }}</span></li>
<li class="list-group-item">{% trans "Latest Flags" %}</li>
{% for f in latest_flags %}
{% ismember f.user.userprofileinfo as is_member %}
<li class="list-group-item text-truncate">
<a class="ctf-link" href="{% url 'ctf' cat_slug=f.ctf.category.slug ctf_slug=f.ctf.slug %}"> {{f.ctf}}</a>
<span style="position:absolute;right: 15px;">
<a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=f.user.username %}">{{ f.user.username }}</a>
</span>
</li>
{% endfor %}
</ul>
<div class="row flex-nowrap">
<div class="col-lg-6 col-md-6">
<ul class="list-group">
<li class="list-group-item active">{% trans "Flags counter" %}</li>
<li class="list-group-item active">{% trans "Flags" %}</li>
<li class="list-group-item"><span>{{ flags }}</span></li>
</ul>
</div>
<div class="col-lg-6 col-md-6">
<ul class="list-group">
<li class="list-group-item active">{% trans "Users" %}</li>
<li class="list-group-item"><span>{{ nb_users }}</span></li>
</ul>
</div>
</div>
</div>
</div>

View File

@ -8,6 +8,9 @@ from django.urls import translate_url
from django.utils.translation import (
LANGUAGE_SESSION_KEY, check_for_language, get_language,
)
import datetime
from collections import defaultdict
import operator
def get_content_by_lang(news):
lang = get_language()
@ -22,6 +25,19 @@ def get_content_by_lang(news):
ret = news.content_ru
return ret
def get_weekly_top():
week_ago = datetime.datetime.now() - datetime.timedelta(days=7)
weekly_flags = CTF_flags.objects.filter(flag_date__gt=week_ago, ctf__disabled=False, ctf__event=None)
scores = defaultdict(int)
for sol in weekly_flags:
scores[sol.user] += sol.ctf.points
users = sorted(scores.items(), key=operator.itemgetter(1), reverse=True)
users = [(u[0].userprofileinfo, u[1]) for u in users]
return(users[:5])
def home(request):
lang_code = get_language()
if hasattr(request, 'session') and LANGUAGE_SESSION_KEY in request.session:
@ -32,11 +48,15 @@ def home(request):
response = HttpResponseRedirect(url_translated)
return response
news = new.objects.order_by('-pub_date')[:5]
latest_ctfs = CTF.objects.filter(event=None).order_by('-pub_date')[:5]
latest_ctfs = CTF.objects.filter(event=None, disabled=False).order_by('-pub_date')[:5]
top10 = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')[:10]
nb_flags = CTF_flags.objects.count()
nb_users = UserProfileInfo.objects.count()
return render(request, 'home/home.html', {'news' : news, 'ctfs' : latest_ctfs, 'top' : top10, 'flags' : nb_flags})
latest_flags = CTF_flags.objects.filter(ctf__event = None, ctf__disabled=False).order_by('-flag_date')[:5]
top_weekly = get_weekly_top()
return render(request, 'home/home.html', {'news' : news, 'ctfs' : latest_ctfs, 'top' : top10, 'flags' : nb_flags,
'latest_flags':latest_flags, 'top_weekly': top_weekly, 'nb_users': nb_users})
def cgu(request):
return render(request, 'cgu.html')

View File

@ -3,87 +3,112 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\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"
"Language: \n"
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
"PO-Revision-Date: 2022-02-04 05:56+0100\n"
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
"Language-Team: \n"
"Language: de\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: Poedit 3.0\n"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr ""
#: accounts/templates/accounts/delete.html:8
msgid "Delete account"
msgstr "Account löschen"
#: accounts/templates/accounts/edit.html:25
msgid "Email"
msgstr ""
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr "Bitte bestätigen sie ihr Passwort, um ihren Account zu löschen."
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr "Gelöschte Accounts können nicht wiederhergestellt werden."
#: accounts/templates/accounts/edit.html:36
#: events/templates/events/manage_team.html:29
msgid "Apply"
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr "Falsches Passwort."
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
msgid "Score"
msgstr ""
#: accounts/templates/accounts/edit.html:55
#: accounts/templates/accounts/profile.html:60
msgid "Registered since"
msgstr ""
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr ""
#: accounts/templates/accounts/delete.html:17
msgid "Your account has been deleted."
msgstr "Ihr Account wurde gelöscht."
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr ""
msgstr "Passwort"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr "Nutzername"
#: accounts/templates/accounts/edit.html:25
msgid "Email"
msgstr "Email"
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr "Webseite"
#: accounts/templates/accounts/edit.html:36
#: events/templates/events/manage_team.html:29
msgid "Apply"
msgstr "Anwenden"
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
msgid "Score"
msgstr "Punktzahl"
#: accounts/templates/accounts/edit.html:55
#: accounts/templates/accounts/profile.html:60
msgid "Registered since"
msgstr "Registriert seit"
#: accounts/templates/accounts/edit.html:61
msgid "Delete my account"
msgstr "Meinen Account löschen"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr "Überprüfen Sie bitte ihre Daten."
#: accounts/templates/accounts/login.html:22
msgid "Reset password"
msgstr ""
msgstr "Passwort zurücksetzen"
#: accounts/templates/accounts/login.html:31
#: accounts/templates/accounts/register.html:38 templates/base.html:103
#: accounts/templates/accounts/register.html:38 templates/base.html:101
#: templates/registration/password_reset_complete.html:18
#: templates/registration/password_reset_confirm.html:38
#: templates/registration/password_reset_done.html:18
#: templates/registration/password_reset_form.html:26
msgid "Login"
msgstr ""
msgstr "Anmelden"
#: accounts/templates/accounts/login.html:32
#: accounts/templates/accounts/register.html:37
@ -92,463 +117,485 @@ msgstr ""
#: templates/registration/password_reset_done.html:19
#: templates/registration/password_reset_form.html:27
msgid "Sign up"
msgstr ""
msgstr "Registrieren"
#: accounts/templates/accounts/profile.html:10
msgid "Challenges Solved by"
msgstr ""
msgstr "Herausforderung gelöst von"
#: accounts/templates/accounts/profile.html:21
#: events/templates/events/team.html:20
msgid "Challenge Name"
msgstr ""
msgstr "Name der Herausforderung"
#: accounts/templates/accounts/profile.html:22
#: events/templates/events/team.html:21
msgid "Category"
msgstr ""
msgstr "Kategorie"
#: accounts/templates/accounts/profile.html:23
#: events/templates/events/team.html:22
msgid "Points"
msgstr ""
msgstr "Punkte"
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr ""
msgstr "Datum"
#: accounts/templates/accounts/profile.html:39
msgid "It seems that this user has not solved any challenge yet..."
msgstr ""
msgstr "Es scheint bisher noch keiner diese Herausforderung gelöst zu haben..."
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
msgid "Rank"
msgstr ""
msgstr "Rang"
#: accounts/templates/accounts/profile.html:56
msgid "Status: Member"
msgstr ""
msgstr "Status: Mitglied"
#: accounts/templates/accounts/profile.html:58
msgid "Status: Visitor"
msgstr ""
msgstr "Status: Gast"
#: accounts/templates/accounts/profile.html:64
#: events/templates/events/team.html:57
msgid "Categories stats"
msgstr ""
msgstr "Kategorie Statistiken"
#: accounts/templates/accounts/register.html:13
msgid "Welcome !"
msgstr ""
msgstr "Willkommen!"
#: accounts/templates/accounts/register.html:14
msgid "Your account has been created."
msgstr ""
msgstr "Ihr Account wurde erstellt."
#: accounts/templates/accounts/register.html:25
msgid "Personal website"
msgstr ""
msgstr "Persönliche Webseite"
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr ""
msgstr "Registrieren"
#: accounts/views/views.py:33
msgid "Your account was inactive."
msgstr ""
msgstr "Ihr Account war inaktiv."
#: accounts/views/views.py:52
msgid ""
"The password must contain at least one letter and at least one digit or "
"punctuation character."
msgstr ""
"Das Passwort muss mindestens einen Buchstaben und eine Ziffer oder einen "
"Satzzeichen enthalten."
#: accounts/views/views.py:54
msgid "A user with that email already exists."
msgstr ""
msgstr "Ein Nutzer mit dieser Email existiert bereits."
#: accounts/views/views.py:67
msgid "A user with that username already exists."
msgstr ""
msgstr "Ein Nutzer mit diesem Nutzernamen existiert bereits."
#: accounts/views/views.py:95
msgid "Email already taken."
msgstr ""
msgstr "Email bereits vergeben."
#: accounts/views/views.py:101
msgid "Username already taken."
msgstr ""
msgstr "Nutzername bereits vergeben."
#: accounts/views/views.py:105 events/views/teams.py:122
msgid "Updated."
msgstr ""
msgstr "Aktualisiert."
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
msgstr "Veröffentlichungsdatum"
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
msgid "Challenge is not yet available."
msgstr ""
msgstr "Herausforderung ist noch nicht verfügbar."
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
"Keine Übersetzung verfügbar. Bitte versuchen Sie es auf einer anderen "
"Sprache noch einmal (Englisch oder Französisch)."
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr ""
msgstr "Herzlichen Glückwunsch!"
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr ""
msgstr "Schon gelöst"
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr ""
msgstr "Herausforderung beginnen"
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr ""
msgstr "Herunterladen"
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr ""
msgstr "Falsche flagge! Sie können es schaffen!"
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr ""
msgstr "Gelöst von"
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr ""
msgstr "Bisher hat noch niemand diese Herausforderung gelöst."
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr ""
msgstr "Autor/-in"
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr ""
msgstr "Belohnungspunkte"
#: ctfs/templates/ctfs/ctfs_list.html:14
msgid "Solved"
msgstr ""
msgstr "Gelöst"
#: ctfs/templates/ctfs/ctfs_list.html:37
msgid "No ctf available for this category."
msgstr ""
msgstr "Kein CTF in dieser Kategorie verfügbar."
#: ctfs/templates/ctfs/ctfs_list.html:42
msgid "Categories"
msgstr ""
msgstr "Kategorien"
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
msgid "No category available."
msgstr ""
msgstr "Keine Kategorie verfügbar."
#: events/templates/events/create_team.html:9
#: events/templates/events/join_team.html:9
msgid "This event starts at"
msgstr ""
msgstr "Dieses Ereignis beginnt am"
#: events/templates/events/create_team.html:16
#: events/templates/events/join_team.html:16
msgid "You need to be registered to the event."
msgstr ""
msgstr "Sie müssen am Ereignis teilnehmen."
#: events/templates/events/create_team.html:19 events/views/teams.py:118
msgid "Name already taken."
msgstr ""
msgstr "Name schon vergeben."
#: events/templates/events/create_team.html:25
#: events/templates/events/join_team.html:30
#: events/templates/events/manage_team.html:22
msgid "Team name"
msgstr ""
msgstr "Teamname"
#: events/templates/events/create_team.html:27
#: events/templates/events/create_team.html:46
#: events/templates/events/join_team.html:52
msgid "Create Team"
msgstr ""
msgstr "Team erstellen"
#: events/templates/events/create_team.html:32
#: events/templates/events/event_pwd.html:28
#: events/templates/events/join_team.html:37
msgid "You need to be logged to access this event."
msgstr ""
msgstr "Sie müssen angemeldet sein um auf dieses Ereignis zuzugreifen."
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr ""
msgstr "Beginnt am"
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
msgstr ""
msgstr "Endet am"
#: events/templates/events/create_team.html:47
#: events/templates/events/join_team.html:32
#: events/templates/events/join_team.html:51
msgid "Join Team"
msgstr ""
msgstr "Team beitreten"
#: events/templates/events/create_team.html:54
#: events/templates/events/join_team.html:59
msgid "Find me a team !"
msgstr ""
msgstr "Finde mir einen Team!"
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr ""
msgstr "Ereignis"
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr ""
msgstr "Die Registrierung hat geendet."
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr ""
msgstr "Sie haben sich schon für dieses Ereignis registriert."
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr ""
msgstr "Dieses Ereignis hat bereits geendet."
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr ""
msgstr "Fehler während der Verarbeitung ihrer Anfrage. (Ungültiges Formular)"
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
msgstr ""
"Fehler: Sie nehmen an diesem Ereignis nicht teil, und können deshalb keinen "
"Punktestand registrieren."
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr ""
msgstr "Dieses Ereignis startet am"
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
msgid "Challenges"
msgstr ""
msgstr "Herausforderungen"
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
msgid "No challenges available."
msgstr ""
msgstr "Keine Herausforderung verfügbar."
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr ""
msgstr "Das Ereignis hat noch nicht begonnen."
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
msgid "ScoreBoard"
msgstr ""
msgstr "Punktestand"
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr ""
msgstr "Team"
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr ""
msgstr "Niemand hat bisher Punkte verdient, werden Sie der erste sein?"
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr ""
msgstr "Team verwalten"
#: events/templates/events/event_pwd.html:15
#: events/templates/events/join_team.html:21
msgid "Wrong password submited."
msgstr ""
msgstr "Falsches Passwort eingetragen."
#: events/templates/events/event_pwd.html:20
msgid "This event is password protected"
msgstr ""
msgstr "Dieses Ereignis ist passwortgeschützt"
#: events/templates/events/event_pwd.html:21
msgid "You need to submit the event password to gain access to this event."
msgstr ""
msgstr "Sie müssen das Ereignispasswort eintragen um darauf zuzugreifen."
#: events/templates/events/events_list.html:6 templates/base.html:63
#: events/templates/events/events_list.html:6 templates/base.html:61
msgid "Events"
msgstr ""
msgstr "Ereignisse"
#: events/templates/events/events_list.html:38
msgid "See more"
msgstr ""
msgstr "Weiter"
#: events/templates/events/events_list.html:44
msgid "No events available."
msgstr ""
msgstr "Keine Ereignisse verfügbar."
#: events/templates/events/join_team.html:19
msgid "Team does not exist."
msgstr ""
msgstr "Team existiert nicht."
#: events/templates/events/join_team.html:23
msgid "Maximum size reached."
msgstr ""
msgstr "Maximale Mitgliederanzahl erreicht."
#: events/templates/events/manage_team.html:26
msgid "Team password"
msgstr ""
msgstr "Teampasswort"
#: events/templates/events/manage_team.html:44
#: events/templates/events/team.html:49
msgid "Members"
msgstr ""
msgstr "Mitgliede"
#: events/templates/events/manage_team.html:51
msgid "Leave Team"
msgstr ""
msgstr "Team verlassen"
#: events/templates/events/team.html:38
msgid "It seems that this team has not solved any challenge yet..."
msgstr ""
msgstr "Dieses Team scheint noch keine Herausforderung gelöst zu haben..."
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr "Top 5 der Woche"
#: home/templates/home/home.html:56
msgid "No article available."
msgstr ""
msgstr "Kein Artikel verfügbar."
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr ""
msgstr "Letzte Herausforderung hinzugefügt"
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
msgid "points"
msgstr "Punkte"
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr ""
msgstr "Kein CTF verfügbar."
#: home/templates/home/home.html:53
msgid "Flags counter"
msgstr ""
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr "Letzte Flaggen"
#: home/templates/home/home.html:88
msgid "Flags"
msgstr "Flaggen"
#: home/templates/home/home.html:94
msgid "Users"
msgstr "Nutzer"
#: project/settings.py:115
msgid "English"
msgstr ""
msgstr "Englisch"
#: project/settings.py:116
msgid "German"
msgstr ""
msgstr "Deutsch"
#: project/settings.py:117
msgid "French"
msgstr ""
msgstr "Französisch"
#: project/settings.py:118
msgid "Russian"
msgstr ""
msgstr "Russisch"
#: scoreboard/templates/scoreboard/scoreboard.html:38
msgid "First"
msgstr ""
msgstr "Erste"
#: scoreboard/templates/scoreboard/scoreboard.html:39
msgid "Previous"
msgstr ""
msgstr "Vorherige"
#: scoreboard/templates/scoreboard/scoreboard.html:43
msgid "Page "
msgstr ""
msgstr "Seite "
#: scoreboard/templates/scoreboard/scoreboard.html:47
msgid "Next"
msgstr ""
msgstr "Nächste"
#: scoreboard/templates/scoreboard/scoreboard.html:48
msgid "Last"
msgstr ""
msgstr "Letzte"
#: templates/base.html:59
msgid "Scoreboard"
msgstr ""
msgstr "Punktestand"
#: templates/base.html:66
#: templates/base.html:64
msgid "Resources"
msgstr ""
msgstr "Ressourcen"
#: templates/base.html:99
#: templates/base.html:97
msgid "Logout"
msgstr ""
msgstr "Abmelden"
#: templates/base.html:106
#: templates/base.html:104
msgid "Sign Up"
msgstr ""
msgstr "Registrieren"
#: templates/base.html:134
#: templates/base.html:139
msgid "Become a Patron!"
msgstr ""
msgstr "Unterstützen Sie uns!"
#: templates/registration/password_reset_complete.html:11
msgid "Your new password has been set."
msgstr ""
msgstr "Ihr neues Passwort wurde festgelegt."
#: templates/registration/password_reset_confirm.html:20
msgid "Your password cant be too similar to your other personal information."
msgstr ""
msgstr "Ihr Passwort kann nicht zu ähnlich zu ihren persönlichen Daten sein."
#: templates/registration/password_reset_confirm.html:21
msgid "Your password must contain at least 8 characters."
msgstr ""
msgstr "Ihr Passwort muss mindestens 8 Zeichen enthalten."
#: templates/registration/password_reset_confirm.html:22
msgid "Your password cant be a commonly used password."
msgstr ""
msgstr "Ihr Passwort kann nicht ein häufig benutztes Passwort sein."
#: templates/registration/password_reset_confirm.html:23
msgid "Your password cant be entirely numeric."
msgstr ""
msgstr "Ihr Passwort kann nicht nur Ziffern enthalten."
#: templates/registration/password_reset_confirm.html:26
msgid "Confirm"
msgstr ""
msgstr "Bestätigen"
#: templates/registration/password_reset_confirm.html:28
msgid "Submit"
msgstr ""
msgstr "Einreichen"
#: templates/registration/password_reset_done.html:11
msgid ""
"We've emailed you instructions for setting your password. You should receive "
"the email shortly!"
msgstr ""
"Wir haben Ihnen eine Anleitung um Ihren Passwort zurückzusetzen per Email "
"geschickt. Sie sollten sie in Kürze empfangen!"
#: templates/registration/password_reset_form.html:16
msgid "Reset"
msgstr ""
msgstr "Zurücksetzen"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"
@ -18,12 +18,40 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/templates/accounts/delete.html:8
msgid "Delete account"
msgstr ""
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr ""
#: accounts/templates/accounts/delete.html:17
msgid "Your account has been deleted."
msgstr ""
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr ""
@ -33,9 +61,9 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
@ -47,9 +75,9 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
@ -61,15 +89,12 @@ msgstr ""
msgid "Registered since"
msgstr ""
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
#: accounts/templates/accounts/edit.html:61
msgid "Delete my account"
msgstr ""
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr ""
#: accounts/templates/accounts/login.html:22
@ -114,8 +139,8 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr ""
@ -125,8 +150,8 @@ msgid "It seems that this user has not solved any challenge yet..."
msgstr ""
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
@ -159,6 +184,7 @@ msgid "Personal website"
msgstr ""
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr ""
@ -192,64 +218,65 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr ""
@ -302,14 +329,14 @@ msgid "You need to be logged to access this event."
msgstr ""
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr ""
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
@ -326,70 +353,66 @@ msgstr ""
msgid "Find me a team !"
msgstr ""
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr ""
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr ""
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr ""
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr ""
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
msgstr ""
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr ""
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
msgid "Challenges"
msgstr ""
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
msgid "No challenges available."
msgstr ""
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr ""
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
msgid "ScoreBoard"
msgstr ""
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr ""
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr ""
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr ""
@ -443,20 +466,36 @@ msgstr ""
msgid "It seems that this team has not solved any challenge yet..."
msgstr ""
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr ""
#: home/templates/home/home.html:56
msgid "No article available."
msgstr ""
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr ""
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
msgid "points"
msgstr ""
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr ""
#: home/templates/home/home.html:53
msgid "Flags counter"
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr ""
#: home/templates/home/home.html:88
msgid "Flags"
msgstr ""
#: home/templates/home/home.html:94
msgid "Users"
msgstr ""
#: project/settings.py:115
@ -511,7 +550,7 @@ msgstr ""
msgid "Sign Up"
msgstr ""
#: templates/base.html:134
#: templates/base.html:144
msgid "Become a Patron!"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"
@ -18,12 +18,40 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/templates/accounts/delete.html:8
msgid "Delete account"
msgstr ""
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr ""
#: accounts/templates/accounts/delete.html:17
msgid "Your account has been deleted."
msgstr ""
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr ""
@ -33,9 +61,9 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
@ -47,9 +75,9 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
@ -61,15 +89,12 @@ msgstr ""
msgid "Registered since"
msgstr ""
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
#: accounts/templates/accounts/edit.html:61
msgid "Delete my account"
msgstr ""
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr ""
#: accounts/templates/accounts/login.html:22
@ -114,8 +139,8 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr ""
@ -125,8 +150,8 @@ msgid "It seems that this user has not solved any challenge yet..."
msgstr ""
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
@ -159,6 +184,7 @@ msgid "Personal website"
msgstr ""
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr ""
@ -192,64 +218,65 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr ""
@ -302,14 +329,14 @@ msgid "You need to be logged to access this event."
msgstr ""
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr ""
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
@ -326,70 +353,66 @@ msgstr ""
msgid "Find me a team !"
msgstr ""
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr ""
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr ""
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr ""
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr ""
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
msgstr ""
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr ""
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
msgid "Challenges"
msgstr ""
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
msgid "No challenges available."
msgstr ""
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr ""
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
msgid "ScoreBoard"
msgstr ""
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr ""
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr ""
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr ""
@ -443,20 +466,36 @@ msgstr ""
msgid "It seems that this team has not solved any challenge yet..."
msgstr ""
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr ""
#: home/templates/home/home.html:56
msgid "No article available."
msgstr ""
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr ""
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
msgid "points"
msgstr ""
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr ""
#: home/templates/home/home.html:53
msgid "Flags counter"
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr ""
#: home/templates/home/home.html:88
msgid "Flags"
msgstr ""
#: home/templates/home/home.html:94
msgid "Users"
msgstr ""
#: project/settings.py:115
@ -511,7 +550,7 @@ msgstr ""
msgid "Sign Up"
msgstr ""
#: templates/base.html:134
#: templates/base.html:144
msgid "Become a Patron!"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"
@ -18,12 +18,44 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: accounts/templates/accounts/delete.html:8
#, fuzzy
#| msgid "Connected accounts"
msgid "Delete account"
msgstr "Comptes connectés"
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr ""
#: accounts/templates/accounts/delete.html:17
#, fuzzy
#| msgid "Your account has been created."
msgid "Your account has been deleted."
msgstr "Votre compte a été créé."
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr "Mot de passe"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr "Pseudo"
@ -33,9 +65,9 @@ msgid "Email"
msgstr "Email"
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr "Site internet"
@ -47,9 +79,9 @@ msgstr "Appliquer"
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
@ -61,17 +93,16 @@ msgstr "Score"
msgid "Registered since"
msgstr "Inscrit depuis"
#: accounts/templates/accounts/edit.html:61
#, fuzzy
#| msgid "Connected accounts"
msgid "Delete my account"
msgstr "Comptes connectés"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr "Merci de vérifier vos informations."
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr "Mot de passe"
#: accounts/templates/accounts/login.html:22
msgid "Reset password"
msgstr "Réinitialiser le mot de passe"
@ -114,8 +145,8 @@ msgid "Points"
msgstr "Points"
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr "Date"
@ -125,8 +156,8 @@ msgid "It seems that this user has not solved any challenge yet..."
msgstr "Il semble que cet utilisateur n'a pas encore résolu de CTF..."
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
@ -161,6 +192,7 @@ msgid "Personal website"
msgstr "Site personnel"
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr "Inscription"
@ -196,66 +228,67 @@ msgstr "Le pseudo est déjà utilisé."
msgid "Updated."
msgstr "Mis à jour."
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr "Date de publication"
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
#, fuzzy
#| msgid "No category available."
msgid "Challenge is not yet available."
msgstr "Il n'y a pas de catégorie disponible."
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr "Félicitations !"
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr "Déjà résolu"
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr "Démarrer le challenge"
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr "Télécharger"
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr "Mauvais flag ! Vous pouvez le faire !"
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr "Résolu par"
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr "Personne n'a résolu ce CTF."
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr "Auteur"
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr "Points"
@ -314,14 +347,14 @@ msgid "You need to be logged to access this event."
msgstr "Vous devez être connecté pour accéder à cet événement."
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr "Début"
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
@ -338,31 +371,31 @@ msgstr "Rejoindre une équipe"
msgid "Find me a team !"
msgstr ""
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr "Événement"
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr "Les inscriptions sont terminées."
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr "Vous êtes déjà inscrit à cet événement."
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr "Cet événement est terminé."
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr "Erreur lors du traitement de votre requête. (Formulaire non valide)"
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
@ -370,46 +403,42 @@ msgstr ""
"Erreur : vous n'êtes pas inscrit à cet événement, vous ne pouvez donc pas "
"enregistrer de scores,C'est putain de logique."
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr "Cet événement débute à"
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
#, fuzzy
#| msgid "Challenge Name"
msgid "Challenges"
msgstr "Nom du challenge"
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
#, fuzzy
#| msgid "No category available."
msgid "No challenges available."
msgstr "Il n'y a pas de catégorie disponible."
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr "L'événement n'a pas encore commencé."
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
#, fuzzy
#| msgid "Scoreboard"
msgid "ScoreBoard"
msgstr "Classement"
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr "Équipe"
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr "Personne n'a encore gagné de point, allez-vous être le premier ?"
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr "Gérer mon équipe"
@ -463,21 +492,41 @@ msgstr "Quitte l'équipe"
msgid "It seems that this team has not solved any challenge yet..."
msgstr "Il semble que cette équipe n'a pas encore résolu de challenge..."
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr ""
#: home/templates/home/home.html:56
msgid "No article available."
msgstr "Il n'y a pas d'article disponible."
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr "Derniers challenges ajoutés"
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
#, fuzzy
#| msgid "Points"
msgid "points"
msgstr "Points"
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr "Pas de challenge disponible"
#: home/templates/home/home.html:53
msgid "Flags counter"
msgstr "Compteur de flags"
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr ""
#: home/templates/home/home.html:88
msgid "Flags"
msgstr ""
#: home/templates/home/home.html:94
#, fuzzy
#| msgid "Username"
msgid "Users"
msgstr "Pseudo"
#: project/settings.py:115
msgid "English"
@ -531,7 +580,7 @@ msgstr "Déconnexion"
msgid "Sign Up"
msgstr "Inscription"
#: templates/base.html:134
#: templates/base.html:144
msgid "Become a Patron!"
msgstr "Soutenez nous via Patreon !"
@ -581,9 +630,6 @@ msgstr "Réinitialiser"
#~ msgid "End at"
#~ msgstr "Fin"
#~ msgid "Connected accounts"
#~ msgstr "Comptes connectés"
#~ msgid "Disconnect Discord"
#~ msgstr "Déconnecter Discord"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"
@ -18,12 +18,40 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: accounts/templates/accounts/delete.html:8
msgid "Delete account"
msgstr ""
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr ""
#: accounts/templates/accounts/delete.html:17
msgid "Your account has been deleted."
msgstr ""
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr ""
@ -33,9 +61,9 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
@ -47,9 +75,9 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
@ -61,15 +89,12 @@ msgstr ""
msgid "Registered since"
msgstr ""
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
#: accounts/templates/accounts/edit.html:61
msgid "Delete my account"
msgstr ""
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr ""
#: accounts/templates/accounts/login.html:22
@ -114,8 +139,8 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr ""
@ -125,8 +150,8 @@ msgid "It seems that this user has not solved any challenge yet..."
msgstr ""
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
@ -159,6 +184,7 @@ msgid "Personal website"
msgstr ""
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr ""
@ -192,64 +218,65 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr ""
@ -302,14 +329,14 @@ msgid "You need to be logged to access this event."
msgstr ""
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr ""
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
@ -326,70 +353,66 @@ msgstr ""
msgid "Find me a team !"
msgstr ""
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr ""
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr ""
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr ""
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr ""
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
msgstr ""
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr ""
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
msgid "Challenges"
msgstr ""
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
msgid "No challenges available."
msgstr ""
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr ""
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
msgid "ScoreBoard"
msgstr ""
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr ""
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr ""
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr ""
@ -443,20 +466,36 @@ msgstr ""
msgid "It seems that this team has not solved any challenge yet..."
msgstr ""
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr ""
#: home/templates/home/home.html:56
msgid "No article available."
msgstr ""
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr ""
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
msgid "points"
msgstr ""
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr ""
#: home/templates/home/home.html:53
msgid "Flags counter"
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr ""
#: home/templates/home/home.html:88
msgid "Flags"
msgstr ""
#: home/templates/home/home.html:94
msgid "Users"
msgstr ""
#: project/settings.py:115
@ -511,7 +550,7 @@ msgstr ""
msgid "Sign Up"
msgstr ""
#: templates/base.html:134
#: templates/base.html:144
msgid "Become a Patron!"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"
@ -20,12 +20,40 @@ msgstr ""
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#: accounts/templates/accounts/delete.html:8
msgid "Delete account"
msgstr ""
#: accounts/templates/accounts/delete.html:11
msgid "Please confirm your password to delete your account."
msgstr ""
#: accounts/templates/accounts/delete.html:12
msgid "Deleted accounts cannot be recovered."
msgstr ""
#: accounts/templates/accounts/delete.html:15
msgid "Password inccorect."
msgstr ""
#: accounts/templates/accounts/delete.html:17
msgid "Your account has been deleted."
msgstr ""
#: accounts/templates/accounts/delete.html:22
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:60 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:70
#: events/templates/events/event_info.html:63
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
msgid "Username"
msgstr ""
@ -35,9 +63,9 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:61
#: events/templates/events/ctf_info.html:71
#: events/templates/events/event_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:62
#: events/templates/events/ctf_info.html:72
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
@ -49,9 +77,9 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:65
#: events/templates/events/event_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
#: events/templates/events/team.html:45
#: scoreboard/templates/scoreboard/scoreboard.html:15
@ -63,15 +91,12 @@ msgstr "счет"
msgid "Registered since"
msgstr ""
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
#: accounts/templates/accounts/edit.html:61
msgid "Delete my account"
msgstr ""
#: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31
msgid "Password"
#: accounts/templates/accounts/login.html:13
msgid "Please, verify your infos."
msgstr ""
#: accounts/templates/accounts/login.html:22
@ -116,8 +141,8 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63
#: events/templates/events/ctf_info.html:72
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23
msgid "Date"
msgstr ""
@ -127,8 +152,8 @@ msgid "It seems that this user has not solved any challenge yet..."
msgstr ""
#: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62
#: events/templates/events/event_info.html:85
#: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12
@ -161,6 +186,7 @@ msgid "Personal website"
msgstr ""
#: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register"
msgstr ""
@ -194,66 +220,67 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:9 events/templates/events/ctf_info.html:11
#: ctfs/templates/ctfs/ctf_info.html:10
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:13
#: ctfs/templates/ctfs/ctf_info.html:14
#, fuzzy
#| msgid "No article available."
msgid "Challenge is not yet available."
msgstr "Нет доступных статей."
#: ctfs/templates/ctfs/ctf_info.html:20
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:26
#: events/templates/events/ctf_info.html:31
#: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:32
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:28
#: events/templates/events/ctf_info.html:33
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:34
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:41
#: events/templates/events/ctf_info.html:50
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:51
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41
#: events/templates/events/ctf_info.html:43
#: events/templates/events/ctf_info.html:52
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:53
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:36
#: events/templates/events/ctf_info.html:47
#: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:55
#: events/templates/events/ctf_info.html:65
#: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:66
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:78
#: events/templates/events/ctf_info.html:94
#: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:84
#: events/templates/events/ctf_info.html:100
#: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:103
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:85
#: events/templates/events/ctf_info.html:101
#: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:104
msgid "Point reward"
msgstr ""
@ -306,14 +333,14 @@ msgid "You need to be logged to access this event."
msgstr ""
#: events/templates/events/create_team.html:41
#: events/templates/events/event_info.html:111
#: events/templates/events/event_info.html:113
#: events/templates/events/event_pwd.html:36
#: events/templates/events/join_team.html:46
msgid "Starts at"
msgstr ""
#: events/templates/events/create_team.html:42
#: events/templates/events/event_info.html:112
#: events/templates/events/event_info.html:114
#: events/templates/events/event_pwd.html:37
#: events/templates/events/join_team.html:47
msgid "Ends at"
@ -330,74 +357,70 @@ msgstr ""
msgid "Find me a team !"
msgstr ""
#: events/templates/events/ctf_info.html:9
#: events/templates/events/ctf_info.html:10
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:24
#: events/templates/events/event_info.html:8
#: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:9
msgid "Subscriptions is over."
msgstr ""
#: events/templates/events/ctf_info.html:27
#: events/templates/events/event_info.html:11
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event."
msgstr ""
#: events/templates/events/ctf_info.html:35
#: events/templates/events/event_info.html:17
#: events/templates/events/ctf_info.html:36
#: events/templates/events/event_info.html:18
msgid "This event is over."
msgstr ""
#: events/templates/events/ctf_info.html:37
#: events/templates/events/ctf_info.html:38
msgid "Error while processing your request. (Invalid Form)"
msgstr ""
#: events/templates/events/ctf_info.html:39
#: events/templates/events/ctf_info.html:40
msgid ""
"Error: you're not registered to this event, so you can't register scores, "
"fucking logic."
msgstr ""
#: events/templates/events/event_info.html:19
#: events/templates/events/event_info.html:20
#: events/templates/events/event_pwd.html:9
msgid "This event start at"
msgstr ""
#: events/templates/events/event_info.html:29
#: events/templates/events/event_info.html:30
msgid "Challenges"
msgstr ""
#: events/templates/events/event_info.html:46
#: events/templates/events/event_info.html:47
#, fuzzy
#| msgid "No article available."
msgid "No challenges available."
msgstr "Нет доступных статей."
#: events/templates/events/event_info.html:50
#: events/templates/events/event_info.html:51
msgid "The event has not started yet."
msgstr ""
#: events/templates/events/event_info.html:56
#: events/templates/events/event_info.html:57
#, fuzzy
#| msgid "Score"
msgid "ScoreBoard"
msgstr "счет"
#: events/templates/events/event_info.html:86
#: events/templates/events/event_info.html:88
msgid "Team"
msgstr ""
#: events/templates/events/event_info.html:104
#: events/templates/events/event_info.html:106
msgid "No one have earn point yet, you gonna be the first ?"
msgstr ""
#: events/templates/events/event_info.html:117
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
#: events/templates/events/event_info.html:129
msgid "Manage my team"
msgstr ""
@ -453,20 +476,36 @@ msgstr ""
msgid "It seems that this team has not solved any challenge yet..."
msgstr ""
#: home/templates/home/home.html:32
#: home/templates/home/home.html:20
msgid "Weekly Top 5"
msgstr ""
#: home/templates/home/home.html:56
msgid "No article available."
msgstr "Нет доступных статей."
#: home/templates/home/home.html:37
#: home/templates/home/home.html:61
msgid "Latest challenges added"
msgstr ""
#: home/templates/home/home.html:43
#: home/templates/home/home.html:66
msgid "points"
msgstr ""
#: home/templates/home/home.html:70
msgid "No ctf available."
msgstr ""
#: home/templates/home/home.html:53
msgid "Flags counter"
#: home/templates/home/home.html:74
msgid "Latest Flags"
msgstr ""
#: home/templates/home/home.html:88
msgid "Flags"
msgstr ""
#: home/templates/home/home.html:94
msgid "Users"
msgstr ""
#: project/settings.py:115
@ -521,7 +560,7 @@ msgstr "Выйти"
msgid "Sign Up"
msgstr ""
#: templates/base.html:134
#: templates/base.html:144
msgid "Become a Patron!"
msgstr ""

View File

@ -122,7 +122,7 @@ LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
TIME_ZONE = 'UTC'
TIME_ZONE = 'Europe/Paris'
USE_I18N = True

View File

@ -3,315 +3,344 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\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"
"Language: \n"
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
"PO-Revision-Date: 2022-02-04 05:53+0100\n"
"Language: de\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"
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
"Language-Team: \n"
#: resources/templates/resources/42ctf.html:9
#: resources/templates/resources/resources.html:12
#: resources/templates/resources/42ctf.html:7
msgid "What is 42CTF ?"
msgstr ""
msgstr "Was ist 42CTF?"
#: resources/templates/resources/42ctf.html:12
#: resources/templates/resources/42ctf.html:10
msgid "A short introduction to CTF"
msgstr ""
msgstr "Eine kurze Einführung zu CTF"
#: resources/templates/resources/42ctf.html:13
#: resources/templates/resources/42ctf.html:11
msgid ""
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
"participants have to solve challenges of various categories to gain points "
"and progress on the scoreboard."
"participants have to solve challenges of various categories to gain points and "
"progress on the scoreboard."
msgstr ""
"CTF steht für Capture The Flag. Es ist ein Computersicherheitswettbewerb, indem "
"Teilnehmer Herausforderungen verschiedener Kategorien lösen müssen um die "
"meisten Punkte zu verdienen."
#: resources/templates/resources/42ctf.html:14
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgstr ""
"Die Herausforderungen bestehen darin eine Art Passwort zu finden: sogenannte \\"
#: resources/templates/resources/42ctf.html:15
msgid "Functionment of 42CTF"
msgstr "Funktionsweise von 42CTF"
#: resources/templates/resources/42ctf.html:16
msgid "42CTF is what we call a permanent CTF."
msgstr "42CTF ist ein sogenanntes Dauer-CTF."
#: resources/templates/resources/42ctf.html:17
msgid "Functionment of 42CTF"
msgstr ""
msgid "Except from the"
msgstr "Außer bei"
#: resources/templates/resources/42ctf.html:17
msgid "events"
msgstr "Ereignissen"
#: resources/templates/resources/42ctf.html:17
msgid "challenges are available on the platform without time limitations."
msgstr "sind Herausforderungen auf der Plattform unbegrenzt zugänglich."
#: resources/templates/resources/42ctf.html:18
msgid "42CTF is what we call a permanent CTF."
msgstr ""
#: resources/templates/resources/42ctf.html:19
msgid "Except from the"
msgstr ""
#: resources/templates/resources/42ctf.html:19
msgid "events"
msgstr ""
#: resources/templates/resources/42ctf.html:19
msgid "challenges are available on the platform without time limitations."
msgstr ""
#: resources/templates/resources/42ctf.html:20
msgid "The registration on 42CTF is open to everyone, 42 students or not."
msgstr ""
msgstr "Die Registrierung bei 42CTF ist für jeden offen, ob 42-Student oder nicht."
#: resources/templates/resources/42ctf.html:21
#: resources/templates/resources/42ctf.html:19
msgid ""
"Events may or may not be open. If you would like to organize an event on "
"42CTF, feel free to contact us."
"Events may or may not be open. If you would like to organize an event on 42CTF, "
"feel free to contact us."
msgstr ""
"Ereignisse können öffentlich oder privat sein. Wenn Sie ein Ereignisse bei 42CTF "
"organisieren möchten, kontaktieren Sie uns."
#: resources/templates/resources/42ctf.html:22
msgid "42CTF Team"
msgstr "das 42CTF Team"
#: resources/templates/resources/42ctf.html:23
msgid "42CTF is managed by 42 students."
msgstr "42CTF wird von 42-Studenten verwaltet."
#: resources/templates/resources/42ctf.html:24
msgid "42CTF Team"
msgstr ""
msgid "You can meet the team on"
msgstr "Treffen können Sie das Team auf"
#: resources/templates/resources/42ctf.html:25
msgid "42CTF is managed by 42 students."
msgstr ""
#: resources/templates/resources/42ctf.html:26
msgid "You can meet the team on"
msgstr ""
#: resources/templates/resources/42ctf.html:27
msgid ""
"Challenges are created by various contributors, not necessarily 42 students."
msgstr ""
"Herausforderungen werden von verschiedenen Mitwirkende beigetragen, nicht "
"zwingend 42-Studenten."
#: resources/templates/resources/42ctf.html:28
#: resources/templates/resources/42ctf.html:26
msgid ""
"Anyone is welcome to submit their own challenges, either on the permanent "
"CTF or for a specific event."
"Anyone is welcome to submit their own challenges, either on the permanent CTF or "
"for a specific event."
msgstr ""
"Beiträge sind von jedem willkommen, entweder auf dem Dauer-CTF, oder für ein "
"bestimmtes Ereignis."
#: resources/templates/resources/create_challenge.html:9
#: resources/templates/resources/resources.html:28
#: resources/templates/resources/create_challenge.html:7
msgid "Create new challenges"
msgstr ""
msgstr "Erstelle neue Herausforderungen"
#: resources/templates/resources/create_challenge.html:12
#: resources/templates/resources/create_challenge.html:10
msgid "If you want to create new challenges for 42CTF, send us a message on "
msgstr ""
"Falls Sie Herausforderungen für 42CTF erstellen möchten, schicken Sie uns eine "
"Nachricht auf "
#: resources/templates/resources/create_challenge.html:13
#: resources/templates/resources/create_challenge.html:11
msgid "If your challenge is offline, then you don't have to ask us in advance."
msgstr ""
"Falls Ihre Herausforderung offline ist, müssen Sie uns nicht im voraus fragen."
#: resources/templates/resources/create_challenge.html:12
msgid ""
"If your challenge is online (for example web or pwn), then you should give us a "
"short description of what you want to do."
msgstr ""
"Falls Ihre Herausforderung online ist (z.B. web oder pwn), dann sollten sie uns "
"eine kurze Beschreibung von dessen was sie vorhaben geben."
#: resources/templates/resources/create_challenge.html:13
msgid "We may be able to help you or to give you resources such as dockerfiles."
msgstr ""
"Wir können Ihnen helfen oder Ressourcen sowie Dockerfiles zur Verfügung stellen."
#: resources/templates/resources/create_challenge.html:14
msgid ""
"If your challenge is online (for example web or pwn), then you should give "
"us a short description of what you want to do."
msgstr ""
#: resources/templates/resources/create_challenge.html:15
msgid ""
"We may be able to help you or to give you resources such as dockerfiles."
msgstr ""
#: resources/templates/resources/create_challenge.html:16
msgid "We plan to make those resources publicly available in a near future."
msgstr ""
msgstr "Wir haben vor diese Ressourcen in naher Zukunft zu veröffentlichen."
#: resources/templates/resources/donate.html:9
#: resources/templates/resources/resources.html:31
#: resources/templates/resources/donate.html:7
msgid "Donate"
msgstr ""
msgstr "Spenden"
#: resources/templates/resources/donate.html:12
#: resources/templates/resources/donate.html:10
msgid "Become a 42CTF member"
msgstr ""
msgstr "42CTF-Mitglied werden"
#: resources/templates/resources/donate.html:13
#: resources/templates/resources/donate.html:11
msgid ""
"42CTF is a non-profit organization with a legal status under the french law "
"(Association loi 1901)."
msgstr ""
"42CTF ist eine gemeinnützige Organisation mit einem Rechtsstatus nach "
"französischem Recht (Association loi 1901)."
#: resources/templates/resources/donate.html:14
#: resources/templates/resources/donate.html:12
msgid "You can support us by becoming a member and paying a fee of 15 euros."
msgstr ""
msgstr "Sie können uns unterstützen indem Sie Mitglied werden und 15 Euro zahlen."
#: resources/templates/resources/donate.html:13
msgid "Membership is then granted for 1 year."
msgstr "Die Mitgliedschaft wird dann für ein Jahr gewährt."
#: resources/templates/resources/donate.html:15
msgid "Membership is then granted for 1 year."
msgid "When you become a member, you gain the following advantages:"
msgstr "Wenn sie Mitglied werden, bekommen sie folgende Vorteile:"
#: resources/templates/resources/donate.html:16
msgid ""
"A different color for your pseudo in the scoreboard, to let everyone know you're "
"a member."
msgstr ""
"Eine verschiedene Farbe für Ihren Nutzernamen im Punktestand, sodass jeder weiß "
"dass Sie ein Mitglied sind."
#: resources/templates/resources/donate.html:17
msgid "When you become a member, you gain the following advantages:"
msgid ""
"The possibility to play again past CTF, with challenges no longer available, in "
"the form of private events with the people of your choice."
msgstr ""
"Die Möglichkeit einen vergangenen CTF zu wiederholen, mit Herausforderungen die "
"nicht mehr verfügbar sind, in Form von privaten Ereignissen mit Menschen Ihrer "
"Wahl."
#: resources/templates/resources/donate.html:18
msgid ""
"A different color for your pseudo in the scoreboard, to let everyone know "
"you're a member."
msgstr ""
#: resources/templates/resources/donate.html:19
msgid ""
"The possibility to play again past CTF, with challenges no longer available, "
"in the form of private events with the people of your choice."
msgstr ""
#: resources/templates/resources/donate.html:20
msgid ""
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
"during one weekend."
msgstr ""
"Z.B.: Sie haben am Welcome CTF 2021 teilgenommen, und wollen es mit Ihren "
"Freunden an einem Wochenende wiederholen."
#: resources/templates/resources/donate.html:21
#: resources/templates/resources/donate.html:19
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
msgstr ""
"Oder sie haben nicht am Welcome CTF 2021 teilgenommen weil sie nicht berechtigt "
"waren."
#: resources/templates/resources/donate.html:24
#: resources/templates/resources/donate.html:22
msgid "More advantages may come later, and you can submit us your ideas."
msgstr ""
"Weitere Vorteile können später folgen, und Sie können uns Ihre Ideen mitteilen."
#: resources/templates/resources/donate.html:25
#: resources/templates/resources/donate.html:23
msgid ""
"However, we will not organize limited time CTF for members only, as this "
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
"for all."
"However, we will not organize limited time CTF for members only, as this will be "
"equivalent to organize paid events, and we want 42CTF to remain FREE for all."
msgstr ""
"Trotzdem werden wir keine zeitlich begrenzte CTFs nur für Mitglieder "
"organisieren, da diese Zahlungspflichtige Ereignissen gleichen, und wir 42CTF "
"KOSTENLOS für alle zugänglich behalten wollen."
#: resources/templates/resources/donate.html:28
#: resources/templates/resources/donate.html:26
msgid "Donate to 42CTF"
msgstr ""
msgstr "An 42CTF spenden"
#: resources/templates/resources/donate.html:29
msgid ""
"You can donate to 42CTF or pay your membership with the following means:"
#: resources/templates/resources/donate.html:27
msgid "You can donate to 42CTF or pay your membership with the following means:"
msgstr ""
"Folgende Zahlungsmethoden sind für eine Spende an 42CTF den Kauf einer "
"Mitgliedshaft verfügbar:"
#: resources/templates/resources/donate.html:43
#: resources/templates/resources/donate.html:46
msgid ""
"If you would like us to add another payment method or if you want to pay in "
"cash, send us a message !"
msgstr ""
"Falls Sie möchten, dass wir eine andere Zahlungsmethode hinzufügen oder lieber "
"Bar zahlen möchten, schicken sie uns eine Nachricht!"
#: resources/templates/resources/donate.html:45
#: resources/templates/resources/donate.html:48
msgid ""
"If you're paying for your membership, don't forget to send us your first and "
"last name, as well as your 42CTF pseudo."
msgstr ""
"Falls sie für eine Mitgliedschaft zahlen, vergessen sie nicht uns Ihren vor und "
"Nachnamen, sowie Ihren 42CTF Nutzernamen mitzuteilen."
#: resources/templates/resources/donate.html:46
#: resources/templates/resources/donate.html:49
msgid ""
"We will only use thoe data to keep track of our members and grant you "
"advantages, and we will never communicate them to any third party."
msgstr ""
"Wir verwenden diese Daten nur um den Überblick über unsere Mitglieder zu "
"Behalten und ihnen Vorteile zu bieten, und werden sie niemals an einem Dritten "
"übermitteln."
#: resources/templates/resources/edit.html:9
#: resources/templates/resources/resources.html:30
#: resources/templates/resources/edit.html:7
msgid "Edit this page"
msgstr ""
msgstr "Diese Seite bearbeiten"
#: resources/templates/resources/edit.html:12
msgid ""
"More information coming soon, but as you can guess it involves making a pull "
"request to your favorite"
msgstr ""
"Weitere Information wird folgen, doch sowie Sie es erraten können benötigt es "
"eine Pull Request auf ihrer lieblings"
#: resources/templates/resources/resources.html:10
msgid "Getting started"
msgstr ""
#: resources/templates/resources/resources.html:13
#: resources/templates/resources/tools.html:9
#: resources/templates/resources/tools.html:7
msgid "Recommended Tools"
msgstr ""
msgstr "Empfohlene Werkzeuge"
#: resources/templates/resources/resources.html:20
msgid "Technical documentation"
msgstr ""
#: resources/templates/resources/resources.html:21
msgid "No docs available, contact us if you want to write some :)"
msgstr ""
#: resources/templates/resources/resources.html:26
msgid "Contribute"
msgstr ""
#: resources/templates/resources/resources.html:29
#: resources/templates/resources/translate.html:9
msgid "Translate 42CTF"
msgstr ""
#: resources/templates/resources/tools.html:12
#: resources/templates/resources/tools.html:10
msgid "To get you started, we built a VM that you can simply import in"
msgstr ""
msgstr "Zum beginnen haben wir eine VM erstellt die Sie einfach importieren können"
#: resources/templates/resources/tools.html:12
#: resources/templates/resources/tools.html:10
msgid "with a bunch of useful tools."
msgstr ""
msgstr "mit vielen nützlichen Werkzeugen."
#: resources/templates/resources/tools.html:13
#: resources/templates/resources/tools.html:11
msgid "You can dowload this OVA"
msgstr ""
msgstr "Herunterladen können Sie die OVA"
#: resources/templates/resources/tools.html:11
msgid "here"
msgstr "Hier"
#: resources/templates/resources/tools.html:13
msgid "here"
msgstr ""
#: resources/templates/resources/tools.html:15
msgid "Here are the tools installed on the VM:"
msgstr ""
msgstr "Folgende Werkzeuge sind auf der VM vorinstalliert:"
#: resources/templates/resources/tools.html:24
#: resources/templates/resources/tools.html:22
msgid ""
"If you want to solve the challenges on your own machine, we recommend you to "
"use a Linux operating system."
"If you want to solve the challenges on your own machine, we recommend you to use "
"a Linux operating system."
msgstr ""
"Falls sie die Herausforderung auf Ihrer eigenen Maschine lösen möchten, "
"empfehlen wir Ihnen einen Linux Betriebssystem zu verwenden."
#: resources/templates/resources/tools.html:25
#: resources/templates/resources/tools.html:23
msgid ""
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
"Windows."
msgstr ""
"Die meisten Reverse-Engineering Herausforderungen sind ELF-Binärdateien und "
"können auf macOS oder Windows nicht ausgeführt werden."
#: resources/templates/resources/tools.html:27
#: resources/templates/resources/tools.html:25
msgid "Additionnaly, you will need the following languages interpreters:"
msgstr "Zusätzlich, werden sie folgende Skript-Interpreter benötigen:"
#: resources/templates/resources/translate.html:7
msgid "Translate 42CTF"
msgstr "42CTF Übersetzen"
#: resources/templates/resources/translate.html:10
msgid "42CTF source code is publicly available on this"
msgstr "42CTF's Quellcode ist öffentlich zugänglich auf dieser"
#: resources/templates/resources/translate.html:11
msgid ""
"Translation does not require any programming skill and is a good way to "
"contribute if you want to help us, by making the platform always more accessible."
msgstr ""
"Übersetzung benötigt keine Programmierkenntnisse und ist ein gute Möglichkeit "
"beizutragen wenn sie uns helfen möchten, indem Sie diese Plattform immer "
"zugänglicher machen."
#: resources/templates/resources/translate.html:12
msgid "42CTF source code is publicly available on this"
msgid "We have a"
msgstr "Wir haben einen"
# FIXME: internalization -> internationalization
#: resources/templates/resources/translate.html:12
msgid "describing how to translate pages with the Django internalization module."
msgstr ""
"indem beschrieben wird wie man mit dem Django Internationalisierungsmodul Seiten "
"übersetzt."
#: resources/templates/resources/translate.html:13
msgid ""
"Translation does not require any programming skill and is a good way to "
"contribute if you want to help us, by making the platform always more "
"accessible."
msgstr ""
#: resources/templates/resources/translate.html:14
msgid "We have a"
"We invite you to read it to know all the details, but it merely requires you to "
"edit text files, so you see, no programming skills required ;)"
msgstr ""
"Wir laden Sie dazu ein es zu lesen um alle Einzelheiten zur Kenntnis zu nehmen, "
"doch schrecken Sie sich nicht ab, es ist nichts mehr als Textverarbeitung, keine "
"Programmierkenntnisse sind benötigt ;)"
#: resources/templates/resources/translate.html:14
msgid ""
"describing how to translate pages with the Django internalization module."
"You will need to fork the git repository, make your changes, push them, and then "
"open a pull request so that we can merge your contributions into our repository."
msgstr ""
"Sie müssen das git Repository forken, Ihre Änderungen tätigen, pushen, und eine "
"Pull Request eröffnen, sodass wir Ihre Beiträge in unsere Repository mergen "
"können."
#: resources/templates/resources/translate.html:15
msgid ""
"We invite you to read it to know all the details, but it merely requires you "
"to edit text files, so you see, no programming skills required ;)"
msgstr ""
#: resources/templates/resources/translate.html:16
msgid ""
"You will need to fork the git repository, make your changes, push them, and "
"then open a pull request so that we can merge your contributions into our "
"repository."
msgstr ""
#: resources/templates/resources/translate.html:17
msgid "Don't hesitate to reach for help on"
msgstr ""
msgstr "Zögern Sie nicht, nach Hilfe zu bitten auf"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-23 17:31+0000\n"
"POT-Creation-Date: 2022-02-02 19:22+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"

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12 col-md-6">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "What is 42CTF ?" %}</h3>
<center><h3>{% trans "What is 42CTF ?" %}</h3></center>
</div>
<div class="ctf-body">
<h4>{% trans "A short introduction to CTF" %}</h4>
@ -30,5 +28,4 @@
</div>
</div>
</div>
{% endblock %}

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12 col-md-6">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Create new challenges" %}</h3>
<center><h3>{% trans "Create new challenges" %}</h3></center>
</div>
<div class="ctf-body">
{% trans "If you want to create new challenges for 42CTF, send us a message on " %}<a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> !<br><br>
@ -18,5 +16,4 @@
</div>
</div>
</div>
{% endblock %}

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Donate" %}</h3>
<center><h3>{% trans "Donate" %}</h3></center>
</div>
<div class="ctf-body">
<h4>{% trans "Become a 42CTF member" %}</h4>
@ -25,7 +23,7 @@
{% trans "However, we will not organize limited time CTF for members only, as this will be equivalent to organize paid events, and we want 42CTF to remain FREE for all." %}<br>
<br><br>
<h4>{% trans "Donate to 42CTF" %}</h4>
<center><h4>{% trans "Donate to 42CTF" %}</h4>
{% trans "You can donate to 42CTF or pay your membership with the following means:" %}<br>
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
<!-- <div class="patreon-content"> -->
@ -38,8 +36,13 @@
<!-- </div> -->
</a>
<a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank">
<img src="/static/img/paypal.png" width="200">
</a><br>
<img src="/static/img/paypal.png" width="200" style="margin-top: -10px;">
</a>
<a href="https://www.helloasso.com/associations/42ctf/adhesions/adhesion" target="_blank">
<img src="/static/img/hello_asso.png" width="180" style="margin-top: -10px;">
</a>
</center>
<br>
{% trans "If you would like us to add another payment method or if you want to pay in cash, send us a message !" %}<br><br>
{% trans "If you're paying for your membership, don't forget to send us your first and last name, as well as your 42CTF pseudo." %}
@ -48,6 +51,4 @@
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,18 +1,19 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12 col-md-6">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Edit this page" %}</h3>
<center><h3>{% trans "Edit this page" %}</h3></center>
</div>
<div class="ctf-body">
<br>
<br>
{% trans "More information coming soon, but as you can guess it involves making a pull request to your favorite" %} <a href="https://github.com/Danhia/42CTF/">repository</a> ;)
<br>
<br>
<br>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -3,38 +3,23 @@
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-lg-9 col-sm-12 news-card">
<div class="card news-card">
<ul class="list-group">
<li class="list-group-item active">{% trans "Getting started" %}</li>
<li class="list-group-item">
<a href="{% url 'resources:42ctf' %}">{% trans "What is 42CTF ?" %}</a></br>
<a href="{% url 'resources:tools' %}">{% trans "Recommended Tools" %}</a>
</li>
</ul>
</div>
<div class="card news-card">
<ul class="list-group">
<li class="list-group-item active">{% trans "Technical documentation" %}</li>
<li class="list-group-item">{% trans "No docs available, contact us if you want to write some :)" %}</li>
</ul>
</div>
<div class="card news-card">
<ul class="list-group">
<li class="list-group-item active">{% trans "Contribute" %}</li>
<li class="list-group-item">
<a href="{% url 'resources:create_challenge' %}">{% trans "Create new challenges" %}</a></br>
<a href="{% url 'resources:translate' %}">{% trans "Translate 42CTF" %}</a></br>
<a href="{% url 'resources:edit' %}">{% trans "Edit this page" %}</a></br>
<a href="{% url 'resources:donate' %}">{% trans "Donate" %}</a>
</li>
</ul>
</div>
</div>
{% block 42ctf %}
{% include "./42ctf.html" %}
{% endblock %}
{% block tools %}
{% include "./tools.html" %}
{% endblock %}
{% block translate %}
{% include "./translate.html" %}
{% endblock %}
{% block create_challenge %}
{% include "./create_challenge.html" %}
{% endblock %}
{% block edit %}
{% include "./edit.html" %}
{% endblock %}
{% block donate %}
{% include "./donate.html" %}
{% endblock %}
</div>
{% endblock %}
{% endblock %}

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12 col-md-6">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Recommended Tools" %}</h3>
<center><h3>{% trans "Recommended Tools" %}</h3></center>
</div>
<div class="ctf-body">
{% trans "To get you started, we built a VM that you can simply import in" %} <a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a> {% trans "with a bunch of useful tools." %}<br>
@ -27,9 +25,10 @@
{% trans "Additionnaly, you will need the following languages interpreters:" %}<br>
- python3<br>
- lua<br>
<br>
<br>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %}
{% load i18n %}
{% get_current_language as lang %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="col-sm-12">
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Translate 42CTF" %}</h3>
<center><h3>{% trans "Translate 42CTF" %}</h3></center>
</div>
<div class="ctf-body">
{% trans "42CTF source code is publicly available on this"%} <a href="https://github.com/Danhia/42CTF/">github</a>.<br>
@ -19,5 +17,4 @@
</div>
</div>
</div>
{% endblock %}

View File

@ -1,38 +1,24 @@
from collections import defaultdict
from django.core.management.base import BaseCommand, CommandError
from accounts import models as acc_models
from accounts.models import UserProfileInfo
from ctfs import models as ex_models
class Command(BaseCommand):
help = 'Recomputes the score and ranking caches from the solutions'
help = 'Recomputes the score cache from the solutions'
def handle(self, *args, **options):
all_sols = ex_models.CTF_flags.objects.select_related().all()
all_sols = ex_models.CTF_flags.objects.select_related().filter(ctf__event=None, ctf__disabled=False)
all_users = UserProfileInfo.objects.all()
scores = defaultdict(int)
for sol in all_sols:
scores[sol.user] += sol.ctf.points
li = [(s, u) for (u, s) in scores.items()]
# #li.sort(reverse=True)
li2 = []
old_rank = None
old_score = None
rank = 0
for (s, u) in li:
rank += 1
if s == old_score:
li2.append((u, s, old_rank))
else:
old_score = s
old_rank = rank
li2.append((u, s, rank))
for u in all_users:
if u.user not in scores.keys():
u.score = 0
u.save()
for (u, s, r) in li2:
u.userprofileinfo.score = s
# u.userprofileinfo.rank = r
for u in scores:
u.userprofileinfo.score = scores[u]
u.userprofileinfo.save()
# not_handled = acc_models.UserProfileInfo.objects.exclude(
# id__in=[u.id for u, s, r in li2]
# )
# not_handled.update(score=0, rank=rank+1)

View File

@ -50,10 +50,12 @@ pre {
padding-left: 15px;
font-weight: bolder;
}
.dropdown-menu {
background-color: #1d1d1d;
border: none;
border-radius: 0;
min-width:inherit;
}
.dropdown-item {
color: #d9d9d9;
@ -62,8 +64,9 @@ pre {
background-color: #1d1d1d;
color: #fff;
}
.flag_link {
margin-right: 6px;
.nav-item{
padding-right: 15px;
padding-left: 15px;
}
.flag_img {
margin-top: 10px;
@ -77,14 +80,7 @@ pre {
.table-dark thead th {
border: none;
}
.list-group a {
text-decoration: none;
/* color: #4375aa; */
}
.list-group a:hover {
text-decoration: none;
color: #fff;
}
.ctf-block {
background-color: #1d1d1d;
min-height: 235px;
@ -361,4 +357,30 @@ footer {
}
.is-member {
color: #2b908f;
}
}
@media only screen and (min-width : 1200px) {
.container { max-width: 1400px; }
}
@media screen and (max-width: 991px) {
.container { display: flex; flex-flow: column; }
.top-sm { order: 1; }
.middle-sm { order: 2; }
.bottom-sm { order: 3 }
}
@media screen and (min-width: 992px) {
.container { display: flex; flex-flow: column; }
.top-md { order: 1; }
.middle-md { order: 2; }
.bottom-md { order: 3 }
}
.ctf-link {
color: #fff;
}
.ctf-link:hover {
color: #a9a9a9;
text-decoration: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View File

@ -57,8 +57,6 @@
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'scoreboard:scoreboard' %}">{% translate "Scoreboard" %}</a>
<li class="nav-item">
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'events:events' %}">{% translate "Events" %}</a>
</li>
@ -67,27 +65,23 @@
</li>
</ul>
<ul class="navbar-nav ">
<!-- <li class="nav-item dropdown">
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
<div class="patreon-content">
<span class="svg-box">
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
</span>
<span class="patreon-text">
Patreon
</span>
</div>
</a>
</li> -->
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as languages %}
{% for lang_code, lang_name in languages %}
<li class="nav-item dropdown">
<a class="flag_link" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}">
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
{% get_current_language as LANGUAGE_CODE %}
<a class="nav-link" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img class="flag_img" src="{% static "img/"|add:LANGUAGE_CODE|add:".svg" %}" alt="flag {{ LANGUAGE_CODE }}" style="margin-top: -5px;"/>
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
{% get_available_languages as languages %}
{% for lang_code, lang_name in languages %}
<a class="dropdown-item" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}">
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
</a>
{% endfor %}
</div>
</li>
{% endfor %}
{% if request.user.is_authenticated %}
<li class="nav-item dropdown">
<a href="{% url 'accounts:edit' %}" class="nav-link">{{ request.user.username }}</a>
@ -116,25 +110,22 @@
</div>
<footer class="container">
<div class="row">
<div class="col-md-4">
<div class="col-lg-4 col-12">
<a href="https://discord.gg/DwZqPpA">
<img width="250px" src="https://discordapp.com/api/guilds/606162827274616845/widget.png?style=banner2">
<img width="250px" src="https://discordapp.com/api/guilds/606162827274616845/widget.png?style=banner2" style="margin-bottom:5px">
</a>
</div>
<div class="col-auto">
<div class="col-lg-1 col-6">
<a href="https://twitter.com/42ctf">
<img width="50px" src="{% static "img/twitter.png" %}">
</a>
</div>
<div class="col-2 footer-text">
<p>42ctf@protonmail.com <br>Made with <img src="{% static "img/smoke.png" %}" width="20px" style="margin-top:-5px"> by <a href="https://ix-56h.github.io/">ix-56h</a> - <a href="{% url "cgu" %}">CGU</a></p>
</div>
<div class="col-auto">
<div class="col-lg-1 col-6 middle-md">
<a href="https://fr.linkedin.com/company/42ctf">
<img width="50px" src="{% static "img/linkedin.png" %}">
<img width="50px" src="{% static "img/linkedin.png" %}" style="margin-bottom:5px">
</a>
</div>
<div class="col-md-4">
<div class="col-lg-4 col-12 bottom-md">
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon">
<div class="patreon-content">
<span class="svg-box">
@ -146,6 +137,9 @@
</div>
</a>
</div>
<div class="col-lg-2 footer-text col-sm-12">
<p>42ctf@protonmail.com <br>Made with <img src="{% static "img/smoke.png" %}" width="20px" style="margin-top:-5px"> by <a href="https://ix-56h.github.io/">ix-56h</a> - <a href="{% url "cgu" %}">CGU</a></p>
</div>
</div>
</footer>
<!-- Optional JavaScript -->