internationalization fixed, templates url fixed, messages recompiled
This commit is contained in:
parent
768e62f369
commit
dbdd6b06f8
|
@ -18,7 +18,7 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for s in solves %}
|
{% for s in solves %}
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><a href="/ctfs/{{ s.ctf.category.slug }}/{{ s.ctf.slug }}">{{ s.ctf.name }}</a></th>
|
<th scope="row"><a href="{% url 'ctf' cat_slug=s.ctf.category.slug ctf_slug=s.ctf.slug %}">{{ s.ctf.name }}</a></th>
|
||||||
<td>{{ s.ctf.category.name}}</td>
|
<td>{{ s.ctf.category.name}}</td>
|
||||||
<td>{{ s.ctf.points }}</td>
|
<td>{{ s.ctf.points }}</td>
|
||||||
<td>{{ s.flag_date|date:"Y-m-d H:i:s" }}</td>
|
<td>{{ s.flag_date|date:"Y-m-d H:i:s" }}</td>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
from django.template import Library
|
||||||
|
from django.core.urlresolvers import resolve, reverse
|
||||||
|
from django.utils.translation import activate, get_language
|
||||||
|
|
||||||
|
register = Library()
|
||||||
|
|
||||||
|
@register.simple_tag(takes_context=True)
|
||||||
|
def change_lang(context, lang=None, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Get active page's url by a specified language
|
||||||
|
Usage: {% change_lang 'en' %}
|
||||||
|
"""
|
||||||
|
|
||||||
|
path = context['request'].path
|
||||||
|
url_parts = resolve( path )
|
||||||
|
|
||||||
|
url = path
|
||||||
|
cur_language = get_language()
|
||||||
|
try:
|
||||||
|
activate(lang)
|
||||||
|
url = reverse( url_parts.view_name, kwargs=url_parts.kwargs )
|
||||||
|
finally:
|
||||||
|
activate(cur_language)
|
||||||
|
|
||||||
|
|
||||||
|
return "%s" % url
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Generated by Django 3.2.7 on 2021-09-07 14:07
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('ctfs', '0003_auto_20191003_1947'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='description_de',
|
||||||
|
field=models.TextField(blank=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='description_en',
|
||||||
|
field=models.TextField(blank=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='description_ru',
|
||||||
|
field=models.TextField(blank=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -12,6 +12,9 @@ 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)
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True)
|
||||||
|
description_en = models.TextField(blank=True)
|
||||||
|
description_ru = models.TextField(blank=True)
|
||||||
|
description_de = models.TextField(blank=True)
|
||||||
file = models.FileField(blank=True, upload_to='challenges')
|
file = models.FileField(blank=True, upload_to='challenges')
|
||||||
ctf_url = models.URLField(blank=True)
|
ctf_url = models.URLField(blank=True)
|
||||||
points = models.PositiveSmallIntegerField()
|
points = models.PositiveSmallIntegerField()
|
||||||
|
|
Binary file not shown.
|
@ -9,7 +9,11 @@
|
||||||
<small>{% trans "Published date" %} : {{ ctf.pub_date }}</small>
|
<small>{% trans "Published date" %} : {{ ctf.pub_date }}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{{ ctf.description|safe }}
|
{% if description %}
|
||||||
|
{{ description|safe }}
|
||||||
|
{% else %}
|
||||||
|
{% trans "No translation available for this challenge. Try another lang (French or English)." %}
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-footer">
|
<div class="ctf-footer">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
|
@ -56,7 +60,7 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for s in solved_list %}
|
{% for s in solved_list %}
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"><a class="profile_link" href="/accounts/profile/{{ s.user.username }}"> {{ s.user.username }}</a></th>
|
<th scope="row"><a class="profile_link" 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>
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
<th scope="row"> </th>
|
<th scope="row"> </th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td><a href="/ctfs/{{ cat.slug }}/{{ ctf.slug }}">{{ ctf.name }}</td>
|
<td><a href="{% url 'ctf' cat_slug=ctf.category.slug ctf_slug=ctf.slug %}">{{ ctf.name }}</td>
|
||||||
<td>{{ ctf.points }}</td>
|
<td>{{ ctf.points }}</td>
|
||||||
<td>{{ ctf.solved_num }}</td>
|
<td>{{ ctf.solved_num }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
<li class="list-group-item active">{% trans "Categories" %}</li>
|
<li class="list-group-item active">{% trans "Categories" %}</li>
|
||||||
{% if cats %}
|
{% if cats %}
|
||||||
{% for c in cats %}
|
{% for c in cats %}
|
||||||
<a class="list-group-item" href="/ctfs/{{ c.slug }}">{{ c.name }}</a>
|
<a class="list-group-item" href="{% url 'category' cat_slug=c.slug %}">{{ c.name }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="list-group-item">{% trans "No category available." %}</li>
|
<li class="list-group-item">{% trans "No category available." %}</li>
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
{% 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>{{ ctf.name }}</h3>
|
|
||||||
<small>{% trans "Published date" %} : {{ ctf.pub_date }}</small>
|
|
||||||
</div>
|
|
||||||
<div class="ctf-body">
|
|
||||||
{{ ctf.description|safe }}
|
|
||||||
</div>
|
|
||||||
<div class="ctf-footer">
|
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
{% if valitated == True %}
|
|
||||||
<p>{% trans "Congratulation !" %}</p>
|
|
||||||
{% elif alvalitated == True %}
|
|
||||||
<p>{% trans "Already flagged" %}</p>
|
|
||||||
{% if ctf.ctf_url %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
|
||||||
{% elif ctf.file %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.file.url }}">{% trans "Download" %}</a></br>
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
{% if failed %}
|
|
||||||
<p>{% trans "Wrong flag ! You can do it !" %}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% if ctf.ctf_url %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
|
||||||
{% elif ctf.file %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.file.url }}">{% trans "Download" %}</a></br>
|
|
||||||
{% endif %}
|
|
||||||
<form method="post" class="submitflag-form">
|
|
||||||
{% csrf_token %}
|
|
||||||
<input type="text" name="flag" maxlength="48" required="" id="id_flag">
|
|
||||||
<input class="form-control" type="submit" value=">">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h4>{% trans "Solved by" %}</h4>
|
|
||||||
{% if solved_list %}
|
|
||||||
<table class="table table-dark">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col">{% trans "Username" %}</th>
|
|
||||||
<th scope="col">{% trans "Website" %}</th>
|
|
||||||
<th scope="col">{% trans "Score" %}</th>
|
|
||||||
<th scope="col">{% trans "Date" %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for s in solved_list %}
|
|
||||||
<tr>
|
|
||||||
<th scope="row"><a class="profile_link" href="/accounts/profile/{{ s.user.username }}"> {{ s.user.username }}</a></th>
|
|
||||||
<td>{{ s.user.userprofileinfo.portfolio_site }}</td>
|
|
||||||
<td>{{ s.user.userprofileinfo.score }}</td>
|
|
||||||
<td>{{ s.flag_date }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% else %}
|
|
||||||
<p>{% trans "Nobody have solved this CTF." %}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item">{% trans "Author" %} : {{ ctf.author.username }}</li>
|
|
||||||
<li class="list-group-item">{% trans "Point reward" %} : {{ ctf.points }}</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
|
||||||
{% load i18n %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12 col-md-9 news-card">
|
|
||||||
<h3>{{ cat.name }}</h3>
|
|
||||||
{% if ctfs %}
|
|
||||||
<table class="table table-striped table-dark">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col"></th>
|
|
||||||
<th scope="col">{% trans "Username" %}</th>
|
|
||||||
<th scope="col">{% trans "Score" %}</th>
|
|
||||||
<th scope="col">{% trans "Solved" %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for ctf in ctfs %}
|
|
||||||
<tr>
|
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
{% if ctf.solved %}
|
|
||||||
<th scope="row" style="color:green;">✓</th>
|
|
||||||
{% else %}
|
|
||||||
<th scope="row" style="color:red;">✕</th>
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
<th scope="row"> </th>
|
|
||||||
{% endif %}
|
|
||||||
<td><a href="/ctfs/{{ cat.slug }}/{{ ctf.slug }}">{{ ctf.name }}</td>
|
|
||||||
<td>{{ ctf.points }}</td>
|
|
||||||
<td>{{ ctf.solved_num }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% else %}
|
|
||||||
<p>{% trans "No ctf available for this category." %}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-12 col-md-3 right-sidebar">
|
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item active">{% trans "Categories" %}</li>
|
|
||||||
{% if cats %}
|
|
||||||
{% for c in cats %}
|
|
||||||
<a class="list-group-item" href="/ctfs/{{ c.slug }}">{{ c.name }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<li class="list-group-item">{% trans "No category available." %}</li>
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
|
@ -4,6 +4,20 @@ from django.contrib.auth.models import timezone
|
||||||
from .models import Category, CTF, CTF_flags
|
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
|
||||||
|
|
||||||
|
def get_description_by_lang(ctf):
|
||||||
|
lang = get_language()
|
||||||
|
ret = None
|
||||||
|
if lang == "fr":
|
||||||
|
ret = ctf.description
|
||||||
|
elif lang == "en":
|
||||||
|
ret = ctf.description_en
|
||||||
|
elif lang == "de":
|
||||||
|
ret = ctf.description_de
|
||||||
|
elif lang == "ru":
|
||||||
|
ret = ctf.description_ru
|
||||||
|
return ret
|
||||||
|
|
||||||
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)
|
||||||
|
@ -17,6 +31,7 @@ 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)
|
||||||
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)
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
if CTF_flags.objects.filter(user=request.user, ctf=ctf_info):
|
if CTF_flags.objects.filter(user=request.user, ctf=ctf_info):
|
||||||
flagged = True
|
flagged = True
|
||||||
|
@ -31,18 +46,18 @@ def ctf(request, cat_slug, ctf_slug):
|
||||||
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()
|
||||||
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True})
|
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True, 'description': description})
|
||||||
else:
|
else:
|
||||||
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True})
|
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True, 'description': description})
|
||||||
else:
|
else:
|
||||||
form = submit_flag()
|
form = submit_flag()
|
||||||
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': True})
|
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': True, 'description': description})
|
||||||
else:
|
else:
|
||||||
form = submit_flag()
|
form = submit_flag()
|
||||||
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list})
|
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'description': description})
|
||||||
else:
|
else:
|
||||||
form = submit_flag()
|
form = submit_flag()
|
||||||
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': flagged})
|
return render(request, 'ctfs/ctf_info.html', {'form' : form, 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': flagged, 'description': description})
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<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="/ctfs/{{ ctf.category.slug }}/{{ ctf.slug }}">{{ ctf.name }}</a>
|
<a class="list-group-item" href="{% url 'ctf' cat_slug=ctf.category.slug ctf_slug=ctf.slug %}">{{ ctf.name }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="list-group-item">{% trans "No ctf available." %}</li>
|
<li class="list-group-item">{% trans "No ctf available." %}</li>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item active">Top 10</li>
|
<li class="list-group-item active">Top 10</li>
|
||||||
{% for t in top %}
|
{% for t in top %}
|
||||||
<li class="list-group-item"># {{ forloop.counter }} <a class="profile_link" href="/accounts/profile/{{ t.user.username }}"> {{ t.user.username }}</a> <span style="position:absolute;right: 15px;">{{ t.score }}</span></li>
|
<li class="list-group-item"># {{ forloop.counter }} <a class="profile_link" href="{% url 'accounts:profile' user_name=t.user.username %}"> {{ t.user.username }}</a> <span style="position:absolute;right: 15px;">{{ t.score }}</span></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render, redirect
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from .models import new
|
from .models import new
|
||||||
|
@ -27,6 +27,8 @@ def home(request):
|
||||||
|
|
||||||
def set_language(request, lang_code):
|
def set_language(request, lang_code):
|
||||||
next = '/'
|
next = '/'
|
||||||
|
if request.GET.get('next'):
|
||||||
|
next = request.GET.get('next')
|
||||||
response = HttpResponseRedirect(next)
|
response = HttpResponseRedirect(next)
|
||||||
if lang_code and check_for_language(lang_code):
|
if lang_code and check_for_language(lang_code):
|
||||||
if next:
|
if next:
|
||||||
|
@ -42,6 +44,7 @@ def set_language(request, lang_code):
|
||||||
path=settings.LANGUAGE_COOKIE_PATH,
|
path=settings.LANGUAGE_COOKIE_PATH,
|
||||||
domain=settings.LANGUAGE_COOKIE_DOMAIN,
|
domain=settings.LANGUAGE_COOKIE_DOMAIN,
|
||||||
)
|
)
|
||||||
return response
|
return redirect('/'+lang_code+next)
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
|
@ -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: 2021-05-10 19:28+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -21,7 +21,7 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,7 +31,7 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -54,7 +54,7 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -78,7 +78,7 @@ msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:90
|
#: accounts/templates/accounts/register.html:38 templates/base.html:84
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:37
|
#: templates/registration/password_reset_confirm.html:37
|
||||||
#: templates/registration/password_reset_done.html:17
|
#: templates/registration/password_reset_done.html:17
|
||||||
|
@ -108,7 +108,7 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -166,39 +166,45 @@ msgstr ""
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
|
msgid ""
|
||||||
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -234,27 +240,19 @@ msgstr ""
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:111
|
||||||
msgid "Global Site"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:112
|
||||||
msgid "Italian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:122
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:123
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:124
|
#: project/settings.py:114
|
||||||
msgid "Spanish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:125
|
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -286,11 +284,11 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:86
|
#: templates/base.html:80
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:93
|
#: templates/base.html:87
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
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: 2021-05-10 19:28+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -21,7 +21,7 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,7 +31,7 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -54,7 +54,7 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -78,7 +78,7 @@ msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:90
|
#: accounts/templates/accounts/register.html:38 templates/base.html:84
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:37
|
#: templates/registration/password_reset_confirm.html:37
|
||||||
#: templates/registration/password_reset_done.html:17
|
#: templates/registration/password_reset_done.html:17
|
||||||
|
@ -108,7 +108,7 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -166,39 +166,45 @@ msgstr ""
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
|
msgid ""
|
||||||
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -234,27 +240,19 @@ msgstr ""
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:111
|
||||||
msgid "Global Site"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:112
|
||||||
msgid "Italian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:122
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:123
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:124
|
#: project/settings.py:114
|
||||||
msgid "Spanish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:125
|
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -286,11 +284,11 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:86
|
#: templates/base.html:80
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:93
|
#: templates/base.html:87
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
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: 2021-05-10 19:28+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -21,7 +21,7 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,7 +31,7 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -54,7 +54,7 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -78,7 +78,7 @@ msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:90
|
#: accounts/templates/accounts/register.html:38 templates/base.html:84
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:37
|
#: templates/registration/password_reset_confirm.html:37
|
||||||
#: templates/registration/password_reset_done.html:17
|
#: templates/registration/password_reset_done.html:17
|
||||||
|
@ -108,7 +108,7 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -166,39 +166,45 @@ msgstr ""
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
|
msgid ""
|
||||||
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -234,27 +240,19 @@ msgstr ""
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:111
|
||||||
msgid "Global Site"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:112
|
||||||
msgid "Italian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:122
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:123
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:124
|
#: project/settings.py:114
|
||||||
msgid "Spanish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:125
|
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -286,11 +284,11 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:86
|
#: templates/base.html:80
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:93
|
#: templates/base.html:87
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
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: 2021-09-06 18:30+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -21,11 +21,8 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:50
|
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:12
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
#: templates/ctfs/ctf_info.html:50 templates/ctfs/ctfs_list.html:12
|
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr "Pseudo"
|
msgstr "Pseudo"
|
||||||
|
|
||||||
|
@ -34,10 +31,8 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:51
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
#: templates/ctfs/ctf_info.html:51
|
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Site internet"
|
msgstr "Site internet"
|
||||||
|
|
||||||
|
@ -59,11 +54,8 @@ msgstr "Connecter Discord"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:52
|
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:13
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
#: templates/ctfs/ctf_info.html:52 templates/ctfs/ctfs_list.html:13
|
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "Score"
|
msgstr "Score"
|
||||||
|
|
||||||
|
@ -116,9 +108,7 @@ msgid "Points"
|
||||||
msgstr "Points"
|
msgstr "Points"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:53
|
|
||||||
#: templates/ctfs/ctf_info.html:53
|
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Date"
|
msgstr "Date"
|
||||||
|
|
||||||
|
@ -150,7 +140,9 @@ msgstr "Votre compte était inactif."
|
||||||
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 "Le mot de passe doit contenir au moins une lettre, un chiffre et un signe de ponctuation."
|
msgstr ""
|
||||||
|
"Le mot de passe doit contenir au moins une lettre, un chiffre et un signe de "
|
||||||
|
"ponctuation."
|
||||||
|
|
||||||
#: accounts/views/views.py:52
|
#: accounts/views/views.py:52
|
||||||
msgid "A user with that email already exists."
|
msgid "A user with that email already exists."
|
||||||
|
@ -173,87 +165,64 @@ msgid "Updated."
|
||||||
msgstr "Mis à jour."
|
msgstr "Mis à jour."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:9
|
#: ctfs/templates/ctfs/ctf_info.html:9
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:9 templates/ctfs/ctf_info.html:9
|
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr "Date de publication"
|
msgstr "Date de publication"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:17
|
msgid ""
|
||||||
#: templates/ctfs/ctf_info.html:17
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr "Félicitations !"
|
msgstr "Félicitations !"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:19
|
|
||||||
#: templates/ctfs/ctf_info.html:19
|
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr "Déjà résolu"
|
msgstr "Déjà résolu"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:21
|
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:30
|
|
||||||
#: templates/ctfs/ctf_info.html:21 templates/ctfs/ctf_info.html:30
|
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr "Démarrer le challenge"
|
msgstr "Démarrer le challenge"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:23
|
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:32
|
|
||||||
#: templates/ctfs/ctf_info.html:23 templates/ctfs/ctf_info.html:32
|
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr "Télécharger"
|
msgstr "Télécharger"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:27
|
|
||||||
#: templates/ctfs/ctf_info.html:27
|
|
||||||
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:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:45
|
|
||||||
#: templates/ctfs/ctf_info.html:45
|
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr "Résolu par"
|
msgstr "Résolu par"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:68
|
|
||||||
#: templates/ctfs/ctf_info.html:68
|
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr "Personne n'a résolu ce CTF."
|
msgstr "Personne n'a résolu ce CTF."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:74
|
|
||||||
#: templates/ctfs/ctf_info.html:74
|
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Auteur"
|
msgstr "Auteur"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
#: ctfs/templates/templates/ctfs/ctf_info.html:75
|
|
||||||
#: templates/ctfs/ctf_info.html:75
|
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr "Points"
|
msgstr "Points"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:14
|
#: ctfs/templates/ctfs/ctfs_list.html:14
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:14
|
|
||||||
#: templates/ctfs/ctfs_list.html:14
|
|
||||||
msgid "Solved"
|
msgid "Solved"
|
||||||
msgstr "Résolu"
|
msgstr "Résolu"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:37
|
#: ctfs/templates/ctfs/ctfs_list.html:37
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:37
|
|
||||||
#: templates/ctfs/ctfs_list.html:37
|
|
||||||
msgid "No ctf available for this category."
|
msgid "No ctf available for this category."
|
||||||
msgstr "Il n'y a pas de challenges dans cette catégorie."
|
msgstr "Il n'y a pas de challenges dans cette catégorie."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:42
|
#: ctfs/templates/ctfs/ctfs_list.html:42
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:42
|
|
||||||
#: templates/ctfs/ctfs_list.html:42
|
|
||||||
msgid "Categories"
|
msgid "Categories"
|
||||||
msgstr "Catégories"
|
msgstr "Catégories"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:48
|
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
||||||
#: ctfs/templates/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
|
||||||
#: templates/ctfs/ctfs_list.html:48
|
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr "Il n'y a pas de catégorie disponible."
|
msgstr "Il n'y a pas de catégorie disponible."
|
||||||
|
|
||||||
|
@ -273,19 +242,19 @@ msgstr "Pas de challenge disponible"
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr "Compteur de flags"
|
msgstr "Compteur de flags"
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:111
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Anglais"
|
msgstr "Anglais"
|
||||||
|
|
||||||
#: project/settings.py:119
|
#: project/settings.py:112
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Allemand"
|
msgstr "Allemand"
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:114
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russe"
|
msgstr "Russe"
|
||||||
|
|
||||||
|
@ -357,7 +326,9 @@ msgstr "Soumettre"
|
||||||
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 "Vous devrierz recevoir rapidement un email avec des instructions pour réinitialiser votre mot de passe."
|
msgstr ""
|
||||||
|
"Vous devrierz recevoir rapidement un email avec des instructions pour "
|
||||||
|
"réinitialiser votre mot de passe."
|
||||||
|
|
||||||
#: templates/registration/password_reset_form.html:15
|
#: templates/registration/password_reset_form.html:15
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
|
|
|
@ -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: 2021-05-10 19:28+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -21,7 +21,7 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -31,7 +31,7 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -54,7 +54,7 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -78,7 +78,7 @@ msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:90
|
#: accounts/templates/accounts/register.html:38 templates/base.html:84
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:37
|
#: templates/registration/password_reset_confirm.html:37
|
||||||
#: templates/registration/password_reset_done.html:17
|
#: templates/registration/password_reset_done.html:17
|
||||||
|
@ -108,7 +108,7 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -166,39 +166,45 @@ msgstr ""
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
|
msgid ""
|
||||||
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -234,27 +240,19 @@ msgstr ""
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:111
|
||||||
msgid "Global Site"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:112
|
||||||
msgid "Italian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:122
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:123
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:124
|
#: project/settings.py:114
|
||||||
msgid "Spanish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:125
|
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -286,11 +284,11 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:86
|
#: templates/base.html:80
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:93
|
#: templates/base.html:87
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
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: 2021-05-10 19:28+0000\n"
|
"POT-Creation-Date: 2021-09-07 19:50+0200\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"
|
||||||
|
@ -23,7 +23,7 @@ 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:50 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:54 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -33,7 +33,7 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:51
|
#: ctfs/templates/ctfs/ctf_info.html:55
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -56,7 +56,7 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:66
|
#: accounts/templates/accounts/edit.html:66
|
||||||
#: accounts/templates/accounts/profile.html:37
|
#: accounts/templates/accounts/profile.html:37
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:56 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "счет"
|
msgstr "счет"
|
||||||
|
@ -80,7 +80,7 @@ msgid "Reset password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:90
|
#: accounts/templates/accounts/register.html:38 templates/base.html:84
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:37
|
#: templates/registration/password_reset_confirm.html:37
|
||||||
#: templates/registration/password_reset_done.html:17
|
#: templates/registration/password_reset_done.html:17
|
||||||
|
@ -110,7 +110,7 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:15
|
#: accounts/templates/accounts/profile.html:15
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:53
|
#: ctfs/templates/ctfs/ctf_info.html:57
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -168,39 +168,45 @@ msgstr ""
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:17
|
#: ctfs/templates/ctfs/ctf_info.html:15
|
||||||
|
msgid ""
|
||||||
|
"No translation available for this challenge. Try another lang (French or "
|
||||||
|
"English)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:21
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:19
|
#: ctfs/templates/ctfs/ctf_info.html:23
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
|
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
|
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:45
|
#: ctfs/templates/ctfs/ctf_info.html:49
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:68
|
#: ctfs/templates/ctfs/ctf_info.html:72
|
||||||
msgid "Nobody have solved this CTF."
|
msgid "Nobody have solved this CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:74
|
#: ctfs/templates/ctfs/ctf_info.html:78
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:75
|
#: ctfs/templates/ctfs/ctf_info.html:79
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -236,27 +242,19 @@ msgstr ""
|
||||||
msgid "Flags counter"
|
msgid "Flags counter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:120
|
#: project/settings.py:111
|
||||||
msgid "Global Site"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:121
|
#: project/settings.py:112
|
||||||
msgid "Italian"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:122
|
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:123
|
#: project/settings.py:113
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:124
|
#: project/settings.py:114
|
||||||
msgid "Spanish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:125
|
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -288,11 +286,11 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:86
|
#: templates/base.html:80
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Выйти"
|
msgstr "Выйти"
|
||||||
|
|
||||||
#: templates/base.html:93
|
#: templates/base.html:87
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -14,19 +14,14 @@ import os
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from local_settings import *
|
from local_settings import *
|
||||||
|
|
||||||
|
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
|
|
||||||
|
|
||||||
# Quick-start development settings - unsuitable for production
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
|
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
|
||||||
|
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
|
||||||
DEBUG = True
|
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
{% for s in scores %}
|
{% for s in scores %}
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row"># {{ forloop.counter0|add:scores.start_index }}</th>
|
<th scope="row"># {{ forloop.counter0|add:scores.start_index }}</th>
|
||||||
<th><a class="profile_link" href="/accounts/profile/{{ s.user.username }}"> {{ s.user.username }}</a></th>
|
<th><a class="profile_link" href="{% url 'accounts:profile' user_name=s.user.username %}"> {{ s.user.username }}</a></th>
|
||||||
<td>
|
<td>
|
||||||
{% if s.user.userprofileinfo.portfolio_site %}
|
{% if s.user.userprofileinfo.portfolio_site %}
|
||||||
<a href="{{ s.user.userprofileinfo.portfolio_site }}" target="_blank">{{ s.user.userprofileinfo.portfolio_site }}</a>
|
<a href="{{ s.user.userprofileinfo.portfolio_site }}" target="_blank">{{ s.user.userprofileinfo.portfolio_site }}</a>
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
{% if cats %}
|
{% if cats %}
|
||||||
{% for c in cats %}
|
{% for c in cats %}
|
||||||
<a class="dropdown-item" href="/ctfs/{{ c.slug }}">{{ c.name }}</a>
|
<a class="dropdown-item" href="{% url 'category' cat_slug=c.slug %}">{{ c.name }}</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="dropdown-item">{% translate "No category available." %}</a>
|
<a class="dropdown-item">{% translate "No category available." %}</a>
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
{% get_available_languages as languages %}
|
{% get_available_languages as languages %}
|
||||||
{% for lang_code, lang_name in 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 %}">
|
<a class="flag_link" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}">
|
||||||
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
|
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
{% 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>{{ ctf.name }}</h3>
|
|
||||||
<small>{% trans "Published date" %} : {{ ctf.pub_date }}</small>
|
|
||||||
</div>
|
|
||||||
<div class="ctf-body">
|
|
||||||
{{ ctf.description|safe }}
|
|
||||||
</div>
|
|
||||||
<div class="ctf-footer">
|
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
{% if valitated == True %}
|
|
||||||
<p>{% trans "Congratulation !" %}</p>
|
|
||||||
{% elif alvalitated == True %}
|
|
||||||
<p>{% trans "Already flagged" %}</p>
|
|
||||||
{% if ctf.ctf_url %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
|
||||||
{% elif ctf.file %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.file.url }}">{% trans "Download" %}</a></br>
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
{% if failed %}
|
|
||||||
<p>{% trans "Wrong flag ! You can do it !" %}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% if ctf.ctf_url %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
|
||||||
{% elif ctf.file %}
|
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.file.url }}">{% trans "Download" %}</a></br>
|
|
||||||
{% endif %}
|
|
||||||
<form method="post" class="submitflag-form">
|
|
||||||
{% csrf_token %}
|
|
||||||
<input type="text" name="flag" maxlength="48" required="" id="id_flag">
|
|
||||||
<input class="form-control" type="submit" value=">">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h4>{% trans "Solved by" %}</h4>
|
|
||||||
{% if solved_list %}
|
|
||||||
<table class="table table-dark">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col">{% trans "Username" %}</th>
|
|
||||||
<th scope="col">{% trans "Website" %}</th>
|
|
||||||
<th scope="col">{% trans "Score" %}</th>
|
|
||||||
<th scope="col">{% trans "Date" %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for s in solved_list %}
|
|
||||||
<tr>
|
|
||||||
<th scope="row"><a class="profile_link" href="/accounts/profile/{{ s.user.username }}"> {{ s.user.username }}</a></th>
|
|
||||||
<td>{{ s.user.userprofileinfo.portfolio_site }}</td>
|
|
||||||
<td>{{ s.user.userprofileinfo.score }}</td>
|
|
||||||
<td>{{ s.flag_date }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% else %}
|
|
||||||
<p>{% trans "Nobody have solved this CTF." %}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item">{% trans "Author" %} : {{ ctf.author.username }}</li>
|
|
||||||
<li class="list-group-item">{% trans "Point reward" %} : {{ ctf.points }}</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
|
||||||
{% load i18n %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12 col-md-9 news-card">
|
|
||||||
<h3>{{ cat.name }}</h3>
|
|
||||||
{% if ctfs %}
|
|
||||||
<table class="table table-striped table-dark">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th scope="col"></th>
|
|
||||||
<th scope="col">{% trans "Username" %}</th>
|
|
||||||
<th scope="col">{% trans "Score" %}</th>
|
|
||||||
<th scope="col">{% trans "Solved" %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for ctf in ctfs %}
|
|
||||||
<tr>
|
|
||||||
{% if request.user.is_authenticated %}
|
|
||||||
{% if ctf.solved %}
|
|
||||||
<th scope="row" style="color:green;">✓</th>
|
|
||||||
{% else %}
|
|
||||||
<th scope="row" style="color:red;">✕</th>
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
<th scope="row"> </th>
|
|
||||||
{% endif %}
|
|
||||||
<td><a href="/ctfs/{{ cat.slug }}/{{ ctf.slug }}">{{ ctf.name }}</td>
|
|
||||||
<td>{{ ctf.points }}</td>
|
|
||||||
<td>{{ ctf.solved_num }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% else %}
|
|
||||||
<p>{% trans "No ctf available for this category." %}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-12 col-md-3 right-sidebar">
|
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item active">{% trans "Categories" %}</li>
|
|
||||||
{% if cats %}
|
|
||||||
{% for c in cats %}
|
|
||||||
<a class="list-group-item" href="/ctfs/{{ c.slug }}">{{ c.name }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<li class="list-group-item">{% trans "No category available." %}</li>
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
Loading…
Reference in New Issue