Merge branch 'main' into events

This commit is contained in:
Danhia 2022-02-04 19:04:20 +01:00
commit 92a1dca27c
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 %} {% endif %}
<li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li> <li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li>
</ul> </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>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -12,5 +12,6 @@ urlpatterns = [
path('rank/<str:token>', views.rank, name='rank'), path('rank/<str:token>', views.rank, name='rank'),
path('connections/connect/discord', views.connection.connect, name='connections-connect-discord'), 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/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 member = True
else: else:
member = False 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 = {} pointDatas = {}
for cat in cats: for cat in cats:
# prepare categories # prepare categories
solved_count = CTF_flags.objects.filter(user=user_obj, ctf__event=None , ctf__category__name=cat.name).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).count() max_count = CTF.objects.filter(category__name=cat.name, event=None, disabled=False).count()
# get datas # get datas
somme = 0 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] = []
pointDatas[cat.name].append([user_obj.date_joined.timestamp() * 1000, 0]) pointDatas[cat.name].append([user_obj.date_joined.timestamp() * 1000, 0])
percent = (solved_count / max_count) * 100 percent = (solved_count / max_count) * 100
@ -142,7 +144,7 @@ def profile(request, user_name):
somme += flag.ctf.points somme += flag.ctf.points
pointDatas[cat.name].append([flag.flag_date.timestamp() * 1000, somme]) 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 = [] solved = []
somme = 0 somme = 0
solved.append([user_obj.date_joined.timestamp() * 1000, 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]) 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, 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): def rank(request, token):
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username') 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 rank += 1
data = {"rank": rank} data = {"rank": rank}
return JsonResponse(data) 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): class CTF(models.Model):
name = models.CharField(max_length=200) name = models.CharField(max_length=200)
flag = models.CharField(max_length=100) flag = models.CharField(max_length=100)
disabled = models.BooleanField(default=False)
description = models.TextField(blank=True) description = models.TextField(blank=True)
description_en = models.TextField(blank=True) description_en = models.TextField(blank=True)
description_ru = models.TextField(blank=True) description_ru = models.TextField(blank=True)

View File

@ -1,6 +1,7 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
{% load i18n %} {% load i18n %}
{% load is_member %}
<div class="row"> <div class="row">
<div class="col-sm-12 col-md-9"> <div class="col-sm-12 col-md-9">
<div class="ctf-block"> <div class="ctf-block">
@ -66,7 +67,8 @@
<tbody> <tbody>
{% for s in solved_list %} {% for s in solved_list %}
<tr> <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.portfolio_site }}</td>
<td>{{ s.user.userprofileinfo.score }}</td> <td>{{ s.user.userprofileinfo.score }}</td>
<td>{{ s.flag_date }}</td> <td>{{ s.flag_date }}</td>
@ -81,8 +83,9 @@
</div> </div>
<div class="d-none d-md-block col-10 col-md-3 right-sidebar"> <div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item">{% trans "Author" %} : {{ ctf.author.username }}</li> {% ismember ctf.author.userprofileinfo as is_member %}
<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> </ul>
</div> </div>

View File

@ -5,6 +5,8 @@ from .models import Category, CTF, CTF_flags
from .forms import submit_flag from .forms import submit_flag
from accounts.models import UserProfileInfo from accounts.models import UserProfileInfo
from django.utils.translation import get_language from django.utils.translation import get_language
from math import log
from accounts.models import UserProfileInfo
def get_description_by_lang(ctf): def get_description_by_lang(ctf):
lang = get_language() lang = get_language()
@ -19,16 +21,33 @@ def get_description_by_lang(ctf):
ret = ctf.description_ru ret = ctf.description_ru
return ret 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): def category(request, cat_slug):
cat = get_object_or_404(Category, slug=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: for ex in ctfs:
ex.solved_num = CTF_flags.objects.filter(ctf=ex).count() ex.solved_num = CTF_flags.objects.filter(ctf=ex).count()
ex.solved = ex.solved_by(request.user) ex.solved = ex.solved_by(request.user)
return render(request, 'ctfs/ctfs_list.html', {'ctfs' : ctfs, 'cat' : cat}) return render(request, 'ctfs/ctfs_list.html', {'ctfs' : ctfs, 'cat' : cat})
def ctf(request, cat_slug, ctf_slug): 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 flagged = False
solved_list = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date') solved_list = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
description = get_description_by_lang(ctf_info) description = get_description_by_lang(ctf_info)
@ -39,13 +58,14 @@ def ctf(request, cat_slug, ctf_slug):
if request.user.is_authenticated: if request.user.is_authenticated:
form = submit_flag(data=request.POST) form = submit_flag(data=request.POST)
if flagged == False and form.is_valid(): 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 = CTF_flags(user = request.user, ctf = ctf_info, flag_date = timezone.now())
new.save() new.save()
profil = UserProfileInfo.objects.get(user=request.user) profil = UserProfileInfo.objects.get(user=request.user)
profil.last_submission_date = timezone.now() profil.last_submission_date = timezone.now()
profil.score += ctf_info.points profil.score += ctf_info.points
profil.save() 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()}) return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True, 'description': description, 'date': timezone.now()})
else: else:
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True, 'description': description, 'date': timezone.now()}) 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="ctf-footer">
<div class="col-sm-8 col-md-6 mx-auto"> <div class="col-sm-8 col-md-6 mx-auto">
{% if logged == True%} {% if logged == True%}
{% if registered == False %} {% if registered == False %}
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span> <span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
{% else %} {% else %}
{% if exist == True %} {% if exist == True %}
<span class="message error-msg">{% trans "Name already taken." %}</span> <span class="message error-msg">{% trans "Name already taken." %}</span>
{% endif %} {% endif %}
<h2>Create Team</h2> <h2>Create Team</h2>
<form method="post" action="{% url 'events:create_team' event_slug=event.slug %}" class="create-team-form"> <form method="post" action="{% url 'events:create_team' event_slug=event.slug %}" class="create-team-form">
{% csrf_token %} {% csrf_token %}
<div class="form-group"> <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="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 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" %}"> <input type="submit" name="" class="form-control" value="{% trans "Create Team" %}">
</div> </div>
</form> </form>
{% endif %} {% endif %}
{% else %} {% else %}
<h4>{% trans "You need to be logged to access this event." %}</h4> <h4>{% trans "You need to be logged to access this event." %}</h4>
{% endif %} {% endif %}
</div> </div>
</div> </div>
</div> </div>
@ -43,19 +43,21 @@
</ul> </ul>
<ul class="list-group"> <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: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>
</ul> {% if event.auto_match %}
{% if event.auto_match %} <ul class="list-group">
<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 %}"> <form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
{%csrf_token%} {%csrf_token%}
<li class="list-group-item"> <li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}"> <input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
</li> </li>
</form> </form>
</ul> </ul>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

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

View File

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

View File

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

View File

@ -4,7 +4,30 @@
{% get_current_language as lang %} {% get_current_language as lang %}
{% load is_member %} {% load is_member %}
<div class="row"> <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 %} {% if news %}
{% for n in news %} {% for n in news %}
<div class="card text-center news-card"> <div class="card text-center news-card">
@ -33,30 +56,46 @@
<p class="text-center">{% trans "No article available." %}</p> <p class="text-center">{% trans "No article available." %}</p>
{% endif %} {% endif %}
</div> </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"> <ul class="list-group">
<li class="list-group-item active">{% trans "Latest challenges added" %}</li> <li class="list-group-item active">{% trans "Latest challenges added" %}</li>
{% if ctfs %} {% if ctfs %}
{% for ctf in 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 %} {% endfor %}
{% else %} {% else %}
<li class="list-group-item">{% trans "No ctf available." %}</li> <li class="list-group-item">{% trans "No ctf available." %}</li>
{% endif %} {% endif %}
</ul> </ul>
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item">Top 10</li> <li class="list-group-item">{% trans "Latest Flags" %}</li>
{% for t in top %} {% for f in latest_flags %}
{% ismember t.user.userprofileinfo as is_member %} {% ismember f.user.userprofileinfo as is_member %}
<li class="list-group-item"># {{ forloop.counter }} <li class="list-group-item text-truncate">
<a class="profile_link {{is_member}}" href="{% url 'accounts:profile' user_name=t.user.username %}"> {{ t.user.username }}</a> <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;">{{ t.score }}</span></li> <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 %} {% endfor %}
</ul> </ul>
<div class="row flex-nowrap">
<div class="col-lg-6 col-md-6">
<ul class="list-group"> <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> <li class="list-group-item"><span>{{ flags }}</span></li>
</ul> </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>
</div> </div>

View File

@ -8,6 +8,9 @@ from django.urls import translate_url
from django.utils.translation import ( from django.utils.translation import (
LANGUAGE_SESSION_KEY, check_for_language, get_language, LANGUAGE_SESSION_KEY, check_for_language, get_language,
) )
import datetime
from collections import defaultdict
import operator
def get_content_by_lang(news): def get_content_by_lang(news):
lang = get_language() lang = get_language()
@ -22,6 +25,19 @@ def get_content_by_lang(news):
ret = news.content_ru ret = news.content_ru
return ret 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): def home(request):
lang_code = get_language() lang_code = get_language()
if hasattr(request, 'session') and LANGUAGE_SESSION_KEY in request.session: if hasattr(request, 'session') and LANGUAGE_SESSION_KEY in request.session:
@ -32,11 +48,15 @@ def home(request):
response = HttpResponseRedirect(url_translated) response = HttpResponseRedirect(url_translated)
return response return response
news = new.objects.order_by('-pub_date')[:5] 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] top10 = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')[:10]
nb_flags = CTF_flags.objects.count() nb_flags = CTF_flags.objects.count()
nb_users = UserProfileInfo.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): def cgu(request):
return render(request, 'cgu.html') return render(request, 'cgu.html')

View File

@ -3,87 +3,112 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2022-02-04 05:56+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: \n"
"Language: \n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
#: accounts/templates/accounts/edit.html:21 #: accounts/templates/accounts/delete.html:8
#: accounts/templates/accounts/login.html:18 msgid "Delete account"
#: accounts/templates/accounts/register.html:22 msgstr "Account löschen"
#: 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/edit.html:25 #: accounts/templates/accounts/delete.html:11
msgid "Email" msgid "Please confirm your password to delete your account."
msgstr "" msgstr "Bitte bestätigen sie ihr Passwort, um ihren Account zu löschen."
#: accounts/templates/accounts/edit.html:30 #: accounts/templates/accounts/delete.html:12
#: ctfs/templates/ctfs/ctf_info.html:61 msgid "Deleted accounts cannot be recovered."
#: events/templates/events/ctf_info.html:71 msgstr "Gelöschte Accounts können nicht wiederhergestellt werden."
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:14
msgid "Website"
msgstr ""
#: accounts/templates/accounts/edit.html:36 #: accounts/templates/accounts/delete.html:15
#: events/templates/events/manage_team.html:29 msgid "Password inccorect."
msgid "Apply" msgstr "Falsches Passwort."
msgstr ""
#: accounts/templates/accounts/edit.html:47 #: accounts/templates/accounts/delete.html:17
#: accounts/templates/accounts/profile.html:46 msgid "Your account has been deleted."
#: ctfs/templates/ctfs/ctf_info.html:62 ctfs/templates/ctfs/ctfs_list.html:13 msgstr "Ihr Account wurde gelöscht."
#: 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:22
#: accounts/templates/accounts/login.html:19 #: accounts/templates/accounts/login.html:19
#: accounts/templates/accounts/register.html:23 #: accounts/templates/accounts/register.html:23
#: events/templates/events/create_team.html:26 #: events/templates/events/create_team.html:26
#: events/templates/events/join_team.html:31 #: events/templates/events/join_team.html:31
msgid "Password" 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 #: accounts/templates/accounts/login.html:22
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr "Passwort zurücksetzen"
#: accounts/templates/accounts/login.html:31 #: 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_complete.html:18
#: templates/registration/password_reset_confirm.html:38 #: templates/registration/password_reset_confirm.html:38
#: templates/registration/password_reset_done.html:18 #: templates/registration/password_reset_done.html:18
#: templates/registration/password_reset_form.html:26 #: templates/registration/password_reset_form.html:26
msgid "Login" msgid "Login"
msgstr "" msgstr "Anmelden"
#: accounts/templates/accounts/login.html:32 #: accounts/templates/accounts/login.html:32
#: accounts/templates/accounts/register.html:37 #: accounts/templates/accounts/register.html:37
@ -92,463 +117,485 @@ msgstr ""
#: templates/registration/password_reset_done.html:19 #: templates/registration/password_reset_done.html:19
#: templates/registration/password_reset_form.html:27 #: templates/registration/password_reset_form.html:27
msgid "Sign up" msgid "Sign up"
msgstr "" msgstr "Registrieren"
#: accounts/templates/accounts/profile.html:10 #: accounts/templates/accounts/profile.html:10
msgid "Challenges Solved by" msgid "Challenges Solved by"
msgstr "" msgstr "Herausforderung gelöst von"
#: accounts/templates/accounts/profile.html:21 #: accounts/templates/accounts/profile.html:21
#: events/templates/events/team.html:20 #: events/templates/events/team.html:20
msgid "Challenge Name" msgid "Challenge Name"
msgstr "" msgstr "Name der Herausforderung"
#: accounts/templates/accounts/profile.html:22 #: accounts/templates/accounts/profile.html:22
#: events/templates/events/team.html:21 #: events/templates/events/team.html:21
msgid "Category" msgid "Category"
msgstr "" msgstr "Kategorie"
#: accounts/templates/accounts/profile.html:23 #: accounts/templates/accounts/profile.html:23
#: events/templates/events/team.html:22 #: events/templates/events/team.html:22
msgid "Points" msgid "Points"
msgstr "" msgstr "Punkte"
#: accounts/templates/accounts/profile.html:24 #: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:63 #: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:72 #: events/templates/events/ctf_info.html:73
#: events/templates/events/team.html:23 #: events/templates/events/team.html:23
msgid "Date" msgid "Date"
msgstr "" msgstr "Datum"
#: accounts/templates/accounts/profile.html:39 #: accounts/templates/accounts/profile.html:39
msgid "It seems that this user has not solved any challenge yet..." 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 #: accounts/templates/accounts/profile.html:47
#: events/templates/events/event_info.html:62 #: events/templates/events/event_info.html:63
#: events/templates/events/event_info.html:85 #: events/templates/events/event_info.html:87
#: events/templates/events/manage_team.html:41 #: events/templates/events/manage_team.html:41
#: events/templates/events/team.html:46 #: events/templates/events/team.html:46
#: scoreboard/templates/scoreboard/scoreboard.html:12 #: scoreboard/templates/scoreboard/scoreboard.html:12
msgid "Rank" msgid "Rank"
msgstr "" msgstr "Rang"
#: accounts/templates/accounts/profile.html:56 #: accounts/templates/accounts/profile.html:56
msgid "Status: Member" msgid "Status: Member"
msgstr "" msgstr "Status: Mitglied"
#: accounts/templates/accounts/profile.html:58 #: accounts/templates/accounts/profile.html:58
msgid "Status: Visitor" msgid "Status: Visitor"
msgstr "" msgstr "Status: Gast"
#: accounts/templates/accounts/profile.html:64 #: accounts/templates/accounts/profile.html:64
#: events/templates/events/team.html:57 #: events/templates/events/team.html:57
msgid "Categories stats" msgid "Categories stats"
msgstr "" msgstr "Kategorie Statistiken"
#: accounts/templates/accounts/register.html:13 #: accounts/templates/accounts/register.html:13
msgid "Welcome !" msgid "Welcome !"
msgstr "" msgstr "Willkommen!"
#: accounts/templates/accounts/register.html:14 #: accounts/templates/accounts/register.html:14
msgid "Your account has been created." msgid "Your account has been created."
msgstr "" msgstr "Ihr Account wurde erstellt."
#: accounts/templates/accounts/register.html:25 #: accounts/templates/accounts/register.html:25
msgid "Personal website" msgid "Personal website"
msgstr "" msgstr "Persönliche Webseite"
#: accounts/templates/accounts/register.html:26 #: accounts/templates/accounts/register.html:26
#: events/templates/events/event_info.html:119
msgid "Register" msgid "Register"
msgstr "" msgstr "Registrieren"
#: accounts/views/views.py:33 #: accounts/views/views.py:33
msgid "Your account was inactive." msgid "Your account was inactive."
msgstr "" msgstr "Ihr Account war inaktiv."
#: accounts/views/views.py:52 #: accounts/views/views.py:52
msgid "" msgid ""
"The password must contain at least one letter and at least one digit or " "The password must contain at least one letter and at least one digit or "
"punctuation character." "punctuation character."
msgstr "" msgstr ""
"Das Passwort muss mindestens einen Buchstaben und eine Ziffer oder einen "
"Satzzeichen enthalten."
#: accounts/views/views.py:54 #: accounts/views/views.py:54
msgid "A user with that email already exists." msgid "A user with that email already exists."
msgstr "" msgstr "Ein Nutzer mit dieser Email existiert bereits."
#: accounts/views/views.py:67 #: accounts/views/views.py:67
msgid "A user with that username already exists." msgid "A user with that username already exists."
msgstr "" msgstr "Ein Nutzer mit diesem Nutzernamen existiert bereits."
#: accounts/views/views.py:95 #: accounts/views/views.py:95
msgid "Email already taken." msgid "Email already taken."
msgstr "" msgstr "Email bereits vergeben."
#: accounts/views/views.py:101 #: accounts/views/views.py:101
msgid "Username already taken." msgid "Username already taken."
msgstr "" msgstr "Nutzername bereits vergeben."
#: accounts/views/views.py:105 events/views/teams.py:122 #: accounts/views/views.py:105 events/views/teams.py:122
msgid "Updated." 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" 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." msgid "Challenge is not yet available."
msgstr "" msgstr "Herausforderung ist noch nicht verfügbar."
#: ctfs/templates/ctfs/ctf_info.html:20 #: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:17 home/templates/home/home.html:22 #: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
msgid "" msgid ""
"No translation available. Please try another language (English or French)." "No translation available. Please try another language (English or French)."
msgstr "" 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 #: ctfs/templates/ctfs/ctf_info.html:27
#: events/templates/events/ctf_info.html:31 #: events/templates/events/ctf_info.html:32
msgid "Congratulation !" msgid "Congratulation !"
msgstr "" msgstr "Herzlichen Glückwunsch!"
#: ctfs/templates/ctfs/ctf_info.html:28 #: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:33 #: events/templates/events/ctf_info.html:34
msgid "Already flagged" msgid "Already flagged"
msgstr "" msgstr "Schon gelöst"
#: ctfs/templates/ctfs/ctf_info.html:30 ctfs/templates/ctfs/ctf_info.html:39 #: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: events/templates/events/ctf_info.html:41 #: events/templates/events/ctf_info.html:42
#: events/templates/events/ctf_info.html:50 #: events/templates/events/ctf_info.html:51
msgid "Start the challenge" msgid "Start the challenge"
msgstr "" msgstr "Herausforderung beginnen"
#: ctfs/templates/ctfs/ctf_info.html:32 ctfs/templates/ctfs/ctf_info.html:41 #: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:43 #: events/templates/events/ctf_info.html:44
#: events/templates/events/ctf_info.html:52 #: events/templates/events/ctf_info.html:53
msgid "Download" msgid "Download"
msgstr "" msgstr "Herunterladen"
#: ctfs/templates/ctfs/ctf_info.html:36 #: ctfs/templates/ctfs/ctf_info.html:37
#: events/templates/events/ctf_info.html:47 #: events/templates/events/ctf_info.html:48
msgid "Wrong flag ! You can do it !" msgid "Wrong flag ! You can do it !"
msgstr "" msgstr "Falsche flagge! Sie können es schaffen!"
#: ctfs/templates/ctfs/ctf_info.html:55 #: ctfs/templates/ctfs/ctf_info.html:56
#: events/templates/events/ctf_info.html:65 #: events/templates/events/ctf_info.html:66
msgid "Solved by" msgid "Solved by"
msgstr "" msgstr "Gelöst von"
#: ctfs/templates/ctfs/ctf_info.html:78 #: ctfs/templates/ctfs/ctf_info.html:80
#: events/templates/events/ctf_info.html:94 #: events/templates/events/ctf_info.html:96
msgid "Nobody has solved this challenge yet." msgid "Nobody has solved this challenge yet."
msgstr "" msgstr "Bisher hat noch niemand diese Herausforderung gelöst."
#: ctfs/templates/ctfs/ctf_info.html:84 #: ctfs/templates/ctfs/ctf_info.html:87
#: events/templates/events/ctf_info.html:100 #: events/templates/events/ctf_info.html:103
msgid "Author" msgid "Author"
msgstr "" msgstr "Autor/-in"
#: ctfs/templates/ctfs/ctf_info.html:85 #: ctfs/templates/ctfs/ctf_info.html:88
#: events/templates/events/ctf_info.html:101 #: events/templates/events/ctf_info.html:104
msgid "Point reward" msgid "Point reward"
msgstr "" msgstr "Belohnungspunkte"
#: ctfs/templates/ctfs/ctfs_list.html:14 #: ctfs/templates/ctfs/ctfs_list.html:14
msgid "Solved" msgid "Solved"
msgstr "" msgstr "Gelöst"
#: ctfs/templates/ctfs/ctfs_list.html:37 #: ctfs/templates/ctfs/ctfs_list.html:37
msgid "No ctf available for this category." msgid "No ctf available for this category."
msgstr "" msgstr "Kein CTF in dieser Kategorie verfügbar."
#: ctfs/templates/ctfs/ctfs_list.html:42 #: ctfs/templates/ctfs/ctfs_list.html:42
msgid "Categories" msgid "Categories"
msgstr "" msgstr "Kategorien"
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54 #: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
msgid "No category available." msgid "No category available."
msgstr "" msgstr "Keine Kategorie verfügbar."
#: events/templates/events/create_team.html:9 #: events/templates/events/create_team.html:9
#: events/templates/events/join_team.html:9 #: events/templates/events/join_team.html:9
msgid "This event starts at" msgid "This event starts at"
msgstr "" msgstr "Dieses Ereignis beginnt am"
#: events/templates/events/create_team.html:16 #: events/templates/events/create_team.html:16
#: events/templates/events/join_team.html:16 #: events/templates/events/join_team.html:16
msgid "You need to be registered to the event." 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 #: events/templates/events/create_team.html:19 events/views/teams.py:118
msgid "Name already taken." msgid "Name already taken."
msgstr "" msgstr "Name schon vergeben."
#: events/templates/events/create_team.html:25 #: events/templates/events/create_team.html:25
#: events/templates/events/join_team.html:30 #: events/templates/events/join_team.html:30
#: events/templates/events/manage_team.html:22 #: events/templates/events/manage_team.html:22
msgid "Team name" msgid "Team name"
msgstr "" msgstr "Teamname"
#: events/templates/events/create_team.html:27 #: events/templates/events/create_team.html:27
#: events/templates/events/create_team.html:46 #: events/templates/events/create_team.html:46
#: events/templates/events/join_team.html:52 #: events/templates/events/join_team.html:52
msgid "Create Team" msgid "Create Team"
msgstr "" msgstr "Team erstellen"
#: events/templates/events/create_team.html:32 #: events/templates/events/create_team.html:32
#: events/templates/events/event_pwd.html:28 #: events/templates/events/event_pwd.html:28
#: events/templates/events/join_team.html:37 #: events/templates/events/join_team.html:37
msgid "You need to be logged to access this event." 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/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/event_pwd.html:36
#: events/templates/events/join_team.html:46 #: events/templates/events/join_team.html:46
msgid "Starts at" msgid "Starts at"
msgstr "" msgstr "Beginnt am"
#: events/templates/events/create_team.html:42 #: 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/event_pwd.html:37
#: events/templates/events/join_team.html:47 #: events/templates/events/join_team.html:47
msgid "Ends at" msgid "Ends at"
msgstr "" msgstr "Endet am"
#: events/templates/events/create_team.html:47 #: events/templates/events/create_team.html:47
#: events/templates/events/join_team.html:32 #: events/templates/events/join_team.html:32
#: events/templates/events/join_team.html:51 #: events/templates/events/join_team.html:51
msgid "Join Team" msgid "Join Team"
msgstr "" msgstr "Team beitreten"
#: events/templates/events/create_team.html:54 #: events/templates/events/create_team.html:54
#: events/templates/events/join_team.html:59 #: events/templates/events/join_team.html:59
msgid "Find me a team !" 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" msgid "Event"
msgstr "" msgstr "Ereignis"
#: events/templates/events/ctf_info.html:24 #: events/templates/events/ctf_info.html:25
#: events/templates/events/event_info.html:8 #: events/templates/events/event_info.html:9
msgid "Subscriptions is over." msgid "Subscriptions is over."
msgstr "" msgstr "Die Registrierung hat geendet."
#: events/templates/events/ctf_info.html:27 #: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:11 #: events/templates/events/event_info.html:12
#: events/templates/events/event_pwd.html:18 #: events/templates/events/event_pwd.html:18
msgid "You're already registered to this event." 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/ctf_info.html:36
#: events/templates/events/event_info.html:17 #: events/templates/events/event_info.html:18
msgid "This event is over." 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)" 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 "" msgid ""
"Error: you're not registered to this event, so you can't register scores, " "Error: you're not registered to this event, so you can't register scores, "
"fucking logic." "fucking logic."
msgstr "" 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 #: events/templates/events/event_pwd.html:9
msgid "This event start at" 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" msgid "Challenges"
msgstr "" msgstr "Herausforderungen"
#: events/templates/events/event_info.html:46 #: events/templates/events/event_info.html:47
msgid "No challenges available." 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." 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" msgid "ScoreBoard"
msgstr "" msgstr "Punktestand"
#: events/templates/events/event_info.html:86 #: events/templates/events/event_info.html:88
msgid "Team" 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 ?" 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 #: events/templates/events/event_info.html:129
msgid "Register"
msgstr ""
#: events/templates/events/event_info.html:127
msgid "Manage my team" msgid "Manage my team"
msgstr "" msgstr "Team verwalten"
#: events/templates/events/event_pwd.html:15 #: events/templates/events/event_pwd.html:15
#: events/templates/events/join_team.html:21 #: events/templates/events/join_team.html:21
msgid "Wrong password submited." msgid "Wrong password submited."
msgstr "" msgstr "Falsches Passwort eingetragen."
#: events/templates/events/event_pwd.html:20 #: events/templates/events/event_pwd.html:20
msgid "This event is password protected" msgid "This event is password protected"
msgstr "" msgstr "Dieses Ereignis ist passwortgeschützt"
#: events/templates/events/event_pwd.html:21 #: events/templates/events/event_pwd.html:21
msgid "You need to submit the event password to gain access to this event." 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" msgid "Events"
msgstr "" msgstr "Ereignisse"
#: events/templates/events/events_list.html:38 #: events/templates/events/events_list.html:38
msgid "See more" msgid "See more"
msgstr "" msgstr "Weiter"
#: events/templates/events/events_list.html:44 #: events/templates/events/events_list.html:44
msgid "No events available." msgid "No events available."
msgstr "" msgstr "Keine Ereignisse verfügbar."
#: events/templates/events/join_team.html:19 #: events/templates/events/join_team.html:19
msgid "Team does not exist." msgid "Team does not exist."
msgstr "" msgstr "Team existiert nicht."
#: events/templates/events/join_team.html:23 #: events/templates/events/join_team.html:23
msgid "Maximum size reached." msgid "Maximum size reached."
msgstr "" msgstr "Maximale Mitgliederanzahl erreicht."
#: events/templates/events/manage_team.html:26 #: events/templates/events/manage_team.html:26
msgid "Team password" msgid "Team password"
msgstr "" msgstr "Teampasswort"
#: events/templates/events/manage_team.html:44 #: events/templates/events/manage_team.html:44
#: events/templates/events/team.html:49 #: events/templates/events/team.html:49
msgid "Members" msgid "Members"
msgstr "" msgstr "Mitgliede"
#: events/templates/events/manage_team.html:51 #: events/templates/events/manage_team.html:51
msgid "Leave Team" msgid "Leave Team"
msgstr "" msgstr "Team verlassen"
#: events/templates/events/team.html:38 #: events/templates/events/team.html:38
msgid "It seems that this team has not solved any challenge yet..." 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." 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" 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." msgid "No ctf available."
msgstr "" msgstr "Kein CTF verfügbar."
#: home/templates/home/home.html:53 #: home/templates/home/home.html:74
msgid "Flags counter" msgid "Latest Flags"
msgstr "" 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 #: project/settings.py:115
msgid "English" msgid "English"
msgstr "" msgstr "Englisch"
#: project/settings.py:116 #: project/settings.py:116
msgid "German" msgid "German"
msgstr "" msgstr "Deutsch"
#: project/settings.py:117 #: project/settings.py:117
msgid "French" msgid "French"
msgstr "" msgstr "Französisch"
#: project/settings.py:118 #: project/settings.py:118
msgid "Russian" msgid "Russian"
msgstr "" msgstr "Russisch"
#: scoreboard/templates/scoreboard/scoreboard.html:38 #: scoreboard/templates/scoreboard/scoreboard.html:38
msgid "First" msgid "First"
msgstr "" msgstr "Erste"
#: scoreboard/templates/scoreboard/scoreboard.html:39 #: scoreboard/templates/scoreboard/scoreboard.html:39
msgid "Previous" msgid "Previous"
msgstr "" msgstr "Vorherige"
#: scoreboard/templates/scoreboard/scoreboard.html:43 #: scoreboard/templates/scoreboard/scoreboard.html:43
msgid "Page " msgid "Page "
msgstr "" msgstr "Seite "
#: scoreboard/templates/scoreboard/scoreboard.html:47 #: scoreboard/templates/scoreboard/scoreboard.html:47
msgid "Next" msgid "Next"
msgstr "" msgstr "Nächste"
#: scoreboard/templates/scoreboard/scoreboard.html:48 #: scoreboard/templates/scoreboard/scoreboard.html:48
msgid "Last" msgid "Last"
msgstr "" msgstr "Letzte"
#: templates/base.html:59 #: templates/base.html:59
msgid "Scoreboard" msgid "Scoreboard"
msgstr "" msgstr "Punktestand"
#: templates/base.html:66 #: templates/base.html:64
msgid "Resources" msgid "Resources"
msgstr "" msgstr "Ressourcen"
#: templates/base.html:99 #: templates/base.html:97
msgid "Logout" msgid "Logout"
msgstr "" msgstr "Abmelden"
#: templates/base.html:106 #: templates/base.html:104
msgid "Sign Up" msgid "Sign Up"
msgstr "" msgstr "Registrieren"
#: templates/base.html:134 #: templates/base.html:139
msgid "Become a Patron!" msgid "Become a Patron!"
msgstr "" msgstr "Unterstützen Sie uns!"
#: templates/registration/password_reset_complete.html:11 #: templates/registration/password_reset_complete.html:11
msgid "Your new password has been set." msgid "Your new password has been set."
msgstr "" msgstr "Ihr neues Passwort wurde festgelegt."
#: templates/registration/password_reset_confirm.html:20 #: templates/registration/password_reset_confirm.html:20
msgid "Your password cant be too similar to your other personal information." 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 #: templates/registration/password_reset_confirm.html:21
msgid "Your password must contain at least 8 characters." 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 #: templates/registration/password_reset_confirm.html:22
msgid "Your password cant be a commonly used password." 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 #: templates/registration/password_reset_confirm.html:23
msgid "Your password cant be entirely numeric." msgid "Your password cant be entirely numeric."
msgstr "" msgstr "Ihr Passwort kann nicht nur Ziffern enthalten."
#: templates/registration/password_reset_confirm.html:26 #: templates/registration/password_reset_confirm.html:26
msgid "Confirm" msgid "Confirm"
msgstr "" msgstr "Bestätigen"
#: templates/registration/password_reset_confirm.html:28 #: templates/registration/password_reset_confirm.html:28
msgid "Submit" msgid "Submit"
msgstr "" msgstr "Einreichen"
#: templates/registration/password_reset_done.html:11 #: templates/registration/password_reset_done.html:11
msgid "" msgid ""
"We've emailed you instructions for setting your password. You should receive " "We've emailed you instructions for setting your password. You should receive "
"the email shortly!" "the email shortly!"
msgstr "" 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 #: templates/registration/password_reset_form.html:16
msgid "Reset" msgid "Reset"
msgstr "" msgstr "Zurücksetzen"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,315 +3,344 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2022-02-04 05:53+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language: de\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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/42ctf.html:7
#: resources/templates/resources/resources.html:12
msgid "What is 42CTF ?" 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" 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 "" msgid ""
"CTF stands for Capture The Flag. It is a cybersecurity competition, where " "CTF stands for Capture The Flag. It is a cybersecurity competition, where "
"participants have to solve challenges of various categories to gain points " "participants have to solve challenges of various categories to gain points and "
"and progress on the scoreboard." "progress on the scoreboard."
msgstr "" 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 \\" msgid "The challenges require participants to find sort of passwords called \\"
msgstr "" 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 #: resources/templates/resources/42ctf.html:17
msgid "Functionment of 42CTF" msgid "Except from the"
msgstr "" 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 #: 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." 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 "" msgid ""
"Events may or may not be open. If you would like to organize an event on " "Events may or may not be open. If you would like to organize an event on 42CTF, "
"42CTF, feel free to contact us." "feel free to contact us."
msgstr "" 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 #: resources/templates/resources/42ctf.html:24
msgid "42CTF Team" msgid "You can meet the team on"
msgstr "" msgstr "Treffen können Sie das Team auf"
#: resources/templates/resources/42ctf.html:25 #: 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 "" msgid ""
"Challenges are created by various contributors, not necessarily 42 students." "Challenges are created by various contributors, not necessarily 42 students."
msgstr "" msgstr ""
"Herausforderungen werden von verschiedenen Mitwirkende beigetragen, nicht "
"zwingend 42-Studenten."
#: resources/templates/resources/42ctf.html:28 #: resources/templates/resources/42ctf.html:26
msgid "" msgid ""
"Anyone is welcome to submit their own challenges, either on the permanent " "Anyone is welcome to submit their own challenges, either on the permanent CTF or "
"CTF or for a specific event." "for a specific event."
msgstr "" 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/create_challenge.html:7
#: resources/templates/resources/resources.html:28
msgid "Create new challenges" 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 " msgid "If you want to create new challenges for 42CTF, send us a message on "
msgstr "" 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." msgid "If your challenge is offline, then you don't have to ask us in advance."
msgstr "" 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 #: 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." 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/donate.html:7
#: resources/templates/resources/resources.html:31
msgid "Donate" msgid "Donate"
msgstr "" msgstr "Spenden"
#: resources/templates/resources/donate.html:12 #: resources/templates/resources/donate.html:10
msgid "Become a 42CTF member" msgid "Become a 42CTF member"
msgstr "" msgstr "42CTF-Mitglied werden"
#: resources/templates/resources/donate.html:13 #: resources/templates/resources/donate.html:11
msgid "" msgid ""
"42CTF is a non-profit organization with a legal status under the french law " "42CTF is a non-profit organization with a legal status under the french law "
"(Association loi 1901)." "(Association loi 1901)."
msgstr "" 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." 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 #: 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 "" msgstr ""
"Eine verschiedene Farbe für Ihren Nutzernamen im Punktestand, sodass jeder weiß "
"dass Sie ein Mitglied sind."
#: resources/templates/resources/donate.html:17 #: 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 "" 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 #: resources/templates/resources/donate.html:18
msgid "" 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 " "Ex: you played Welcome CTF 2021, and want to play it again with your friends "
"during one weekend." "during one weekend."
msgstr "" 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." msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
msgstr "" 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." msgid "More advantages may come later, and you can submit us your ideas."
msgstr "" 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 "" msgid ""
"However, we will not organize limited time CTF for members only, as this " "However, we will not organize limited time CTF for members only, as this will be "
"will be equivalent to organize paid events, and we want 42CTF to remain FREE " "equivalent to organize paid events, and we want 42CTF to remain FREE for all."
"for all."
msgstr "" 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" msgid "Donate to 42CTF"
msgstr "" msgstr "An 42CTF spenden"
#: resources/templates/resources/donate.html:29 #: resources/templates/resources/donate.html:27
msgid "" msgid "You can donate to 42CTF or pay your membership with the following means:"
"You can donate to 42CTF or pay your membership with the following means:"
msgstr "" 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 "" msgid ""
"If you would like us to add another payment method or if you want to pay in " "If you would like us to add another payment method or if you want to pay in "
"cash, send us a message !" "cash, send us a message !"
msgstr "" 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 "" msgid ""
"If you're paying for your membership, don't forget to send us your first and " "If you're paying for your membership, don't forget to send us your first and "
"last name, as well as your 42CTF pseudo." "last name, as well as your 42CTF pseudo."
msgstr "" 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 "" msgid ""
"We will only use thoe data to keep track of our members and grant you " "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." "advantages, and we will never communicate them to any third party."
msgstr "" 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/edit.html:7
#: resources/templates/resources/resources.html:30
msgid "Edit this page" msgid "Edit this page"
msgstr "" msgstr "Diese Seite bearbeiten"
#: resources/templates/resources/edit.html:12 #: resources/templates/resources/edit.html:12
msgid "" msgid ""
"More information coming soon, but as you can guess it involves making a pull " "More information coming soon, but as you can guess it involves making a pull "
"request to your favorite" "request to your favorite"
msgstr "" 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 #: resources/templates/resources/tools.html:7
msgid "Getting started"
msgstr ""
#: resources/templates/resources/resources.html:13
#: resources/templates/resources/tools.html:9
msgid "Recommended Tools" msgid "Recommended Tools"
msgstr "" msgstr "Empfohlene Werkzeuge"
#: resources/templates/resources/resources.html:20 #: resources/templates/resources/tools.html:10
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
msgid "To get you started, we built a VM that you can simply import in" 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." 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" 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 #: resources/templates/resources/tools.html:13
msgid "here"
msgstr ""
#: resources/templates/resources/tools.html:15
msgid "Here are the tools installed on the VM:" 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 "" msgid ""
"If you want to solve the challenges on your own machine, we recommend you to " "If you want to solve the challenges on your own machine, we recommend you to use "
"use a Linux operating system." "a Linux operating system."
msgstr "" 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 "" msgid ""
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or " "Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
"Windows." "Windows."
msgstr "" 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:" 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 "" 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 #: 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 "" msgstr ""
"indem beschrieben wird wie man mit dem Django Internationalisierungsmodul Seiten "
"übersetzt."
#: resources/templates/resources/translate.html:13 #: resources/templates/resources/translate.html:13
msgid "" msgid ""
"Translation does not require any programming skill and is a good way to " "We invite you to read it to know all the details, but it merely requires you to "
"contribute if you want to help us, by making the platform always more " "edit text files, so you see, no programming skills required ;)"
"accessible."
msgstr ""
#: resources/templates/resources/translate.html:14
msgid "We have a"
msgstr "" 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 #: resources/templates/resources/translate.html:14
msgid "" 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 "" 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 #: 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" 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 "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

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

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %} {% block content %}
{% load i18n %} {% load i18n %}
{% get_current_language as lang %} {% get_current_language as lang %}
<div class="row"> <div class="col-sm-12 col-md-6">
<div class="col-sm-12 col-md-9">
<div class="ctf-block"> <div class="ctf-block">
<div class="ctf-head"> <div class="ctf-head">
<h3>{% trans "Create new challenges" %}</h3> <center><h3>{% trans "Create new challenges" %}</h3></center>
</div> </div>
<div class="ctf-body"> <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> {% 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> </div>
</div>
{% endblock %} {% endblock %}

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %} {% block content %}
{% load i18n %} {% load i18n %}
{% get_current_language as lang %} {% get_current_language as lang %}
<div class="row"> <div class="col-sm-12">
<div class="col-sm-12 col-md-9">
<div class="ctf-block"> <div class="ctf-block">
<div class="ctf-head"> <div class="ctf-head">
<h3>{% trans "Donate" %}</h3> <center><h3>{% trans "Donate" %}</h3></center>
</div> </div>
<div class="ctf-body"> <div class="ctf-body">
<h4>{% trans "Become a 42CTF member" %}</h4> <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> {% 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> <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> {% 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"> <a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
<!-- <div class="patreon-content"> --> <!-- <div class="patreon-content"> -->
@ -38,8 +36,13 @@
<!-- </div> --> <!-- </div> -->
</a> </a>
<a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank"> <a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank">
<img src="/static/img/paypal.png" width="200"> <img src="/static/img/paypal.png" width="200" style="margin-top: -10px;">
</a><br> </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 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." %} {% 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>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

@ -1,18 +1,19 @@
{% extends 'base.html' %}
{% block content %} {% block content %}
{% load i18n %} {% load i18n %}
{% get_current_language as lang %} {% get_current_language as lang %}
<div class="row"> <div class="col-sm-12 col-md-6">
<div class="col-sm-12 col-md-9">
<div class="ctf-block"> <div class="ctf-block">
<div class="ctf-head"> <div class="ctf-head">
<h3>{% trans "Edit this page" %}</h3> <center><h3>{% trans "Edit this page" %}</h3></center>
</div> </div>
<div class="ctf-body"> <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> ;) {% 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>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

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

View File

@ -1,12 +1,10 @@
{% extends 'base.html' %}
{% block content %} {% block content %}
{% load i18n %} {% load i18n %}
{% get_current_language as lang %} {% get_current_language as lang %}
<div class="row"> <div class="col-sm-12 col-md-6">
<div class="col-sm-12 col-md-9">
<div class="ctf-block"> <div class="ctf-block">
<div class="ctf-head"> <div class="ctf-head">
<h3>{% trans "Recommended Tools" %}</h3> <center><h3>{% trans "Recommended Tools" %}</h3></center>
</div> </div>
<div class="ctf-body"> <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> {% 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> {% trans "Additionnaly, you will need the following languages interpreters:" %}<br>
- python3<br> - python3<br>
- lua<br> - lua<br>
<br>
<br>
</div> </div>
</div> </div>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

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

View File

@ -1,38 +1,24 @@
from collections import defaultdict from collections import defaultdict
from django.core.management.base import BaseCommand, CommandError 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 from ctfs import models as ex_models
class Command(BaseCommand): 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): 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) scores = defaultdict(int)
for sol in all_sols: for sol in all_sols:
scores[sol.user] += sol.ctf.points scores[sol.user] += sol.ctf.points
li = [(s, u) for (u, s) in scores.items()]
# #li.sort(reverse=True)
li2 = [] for u in all_users:
old_rank = None if u.user not in scores.keys():
old_score = None u.score = 0
rank = 0 u.save()
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, s, r) in li2: for u in scores:
u.userprofileinfo.score = s u.userprofileinfo.score = scores[u]
# u.userprofileinfo.rank = r
u.userprofileinfo.save() 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; padding-left: 15px;
font-weight: bolder; font-weight: bolder;
} }
.dropdown-menu { .dropdown-menu {
background-color: #1d1d1d; background-color: #1d1d1d;
border: none; border: none;
border-radius: 0; border-radius: 0;
min-width:inherit;
} }
.dropdown-item { .dropdown-item {
color: #d9d9d9; color: #d9d9d9;
@ -62,8 +64,9 @@ pre {
background-color: #1d1d1d; background-color: #1d1d1d;
color: #fff; color: #fff;
} }
.flag_link { .nav-item{
margin-right: 6px; padding-right: 15px;
padding-left: 15px;
} }
.flag_img { .flag_img {
margin-top: 10px; margin-top: 10px;
@ -77,14 +80,7 @@ pre {
.table-dark thead th { .table-dark thead th {
border: none; border: none;
} }
.list-group a {
text-decoration: none;
/* color: #4375aa; */
}
.list-group a:hover {
text-decoration: none;
color: #fff;
}
.ctf-block { .ctf-block {
background-color: #1d1d1d; background-color: #1d1d1d;
min-height: 235px; min-height: 235px;
@ -361,4 +357,30 @@ footer {
} }
.is-member { .is-member {
color: #2b908f; 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>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{% url 'scoreboard:scoreboard' %}">{% translate "Scoreboard" %}</a> <a class="nav-link" href="{% url 'scoreboard:scoreboard' %}">{% translate "Scoreboard" %}</a>
<li class="nav-item">
</li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{% url 'events:events' %}">{% translate "Events" %}</a> <a class="nav-link" href="{% url 'events:events' %}">{% translate "Events" %}</a>
</li> </li>
@ -67,27 +65,23 @@
</li> </li>
</ul> </ul>
<ul class="navbar-nav "> <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"> <li class="nav-item dropdown">
<a class="flag_link" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}"> {% get_current_language as LANGUAGE_CODE %}
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/> <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> </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> </li>
{% endfor %}
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a href="{% url 'accounts:edit' %}" class="nav-link">{{ request.user.username }}</a> <a href="{% url 'accounts:edit' %}" class="nav-link">{{ request.user.username }}</a>
@ -116,25 +110,22 @@
</div> </div>
<footer class="container"> <footer class="container">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-lg-4 col-12">
<a href="https://discord.gg/DwZqPpA"> <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> </a>
</div> </div>
<div class="col-auto"> <div class="col-lg-1 col-6">
<a href="https://twitter.com/42ctf"> <a href="https://twitter.com/42ctf">
<img width="50px" src="{% static "img/twitter.png" %}"> <img width="50px" src="{% static "img/twitter.png" %}">
</a> </a>
</div> </div>
<div class="col-2 footer-text"> <div class="col-lg-1 col-6 middle-md">
<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">
<a href="https://fr.linkedin.com/company/42ctf"> <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> </a>
</div> </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"> <a href="https://www.patreon.com/42ctf" target="_blank" class="patreon">
<div class="patreon-content"> <div class="patreon-content">
<span class="svg-box"> <span class="svg-box">
@ -146,6 +137,9 @@
</div> </div>
</a> </a>
</div> </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> </div>
</footer> </footer>
<!-- Optional JavaScript --> <!-- Optional JavaScript -->