forked from 42CTF/website
Merge branch 'main' into events
This commit is contained in:
commit
92a1dca27c
|
@ -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 %}
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
|
@ -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'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -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} )
|
|
@ -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()
|
|
@ -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),
|
||||||
|
),
|
||||||
|
]
|
|
@ -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)
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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()})
|
||||||
|
|
|
@ -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 %}
|
|
@ -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>
|
||||||
|
|
|
@ -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%}
|
||||||
|
|
|
@ -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">
|
||||||
|
<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: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 %}
|
|
@ -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>
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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 can’t be too similar to your other personal information."
|
msgid "Your password can’t 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 can’t be a commonly used password."
|
msgid "Your password can’t 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 can’t be entirely numeric."
|
msgid "Your password can’t 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"
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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 %}
|
||||||
|
|
||||||
|
|
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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)
|
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -362,3 +358,29 @@ 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 |
|
@ -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 -->
|
||||||
|
|
Loading…
Reference in New Issue