internationalization fixed, templates url fixed, messages recompiled

This commit is contained in:
ix 2021-09-07 19:52:40 +02:00
parent 04cbde8326
commit 1caccc6428
23 changed files with 269 additions and 502 deletions

View File

@ -18,7 +18,7 @@
<tbody>
{% for s in solves %}
<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.points }}</td>
<td>{{ s.flag_date|date:"Y-m-d H:i:s" }}</td>

26
src/change_lang.py Normal file
View File

@ -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

View File

@ -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),
),
]

View File

@ -12,6 +12,9 @@ class CTF(models.Model):
name = models.CharField(max_length=200)
flag = models.CharField(max_length=100)
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')
ctf_url = models.URLField(blank=True)
points = models.PositiveSmallIntegerField()

View File

@ -9,7 +9,11 @@
<small>{% trans "Published date" %} : {{ ctf.pub_date }}</small>
</div>
<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 class="ctf-footer">
{% if request.user.is_authenticated %}
@ -56,7 +60,7 @@
<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>
<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.score }}</td>
<td>{{ s.flag_date }}</td>

4
src/ctfs/templates/ctfs/ctfs_list.html Normal file → Executable file
View File

@ -26,7 +26,7 @@
{% else %}
<th scope="row"> </th>
{% 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.solved_num }}</td>
</tr>
@ -42,7 +42,7 @@
<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>
<a class="list-group-item" href="{% url 'category' cat_slug=c.slug %}">{{ c.name }}</a>
{% endfor %}
{% else %}
<li class="list-group-item">{% trans "No category available." %}</li>

View File

@ -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 %}

View File

@ -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;">&#10003;</th>
{% else %}
<th scope="row" style="color:red;">&#10005;</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 %}

View File

@ -4,6 +4,20 @@ from django.contrib.auth.models import timezone
from .models import Category, CTF, CTF_flags
from .forms import submit_flag
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):
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)
flagged = False
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 CTF_flags.objects.filter(user=request.user, ctf=ctf_info):
flagged = True
@ -31,18 +46,18 @@ def ctf(request, cat_slug, ctf_slug):
profil.last_submission_date = timezone.now()
profil.score += ctf_info.points
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:
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:
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:
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:
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.

View File

@ -24,7 +24,7 @@
<li class="list-group-item active">{% trans "Latest challenges added" %}</li>
{% if 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 %}
{% else %}
<li class="list-group-item">{% trans "No ctf available." %}</li>
@ -33,7 +33,7 @@
<ul class="list-group">
<li class="list-group-item active">Top 10</li>
{% 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 %}
</ul>
<ul class="list-group">

View File

@ -1,4 +1,4 @@
from django.shortcuts import render
from django.shortcuts import render, redirect
from django.conf import settings
from django.http import HttpResponse, HttpResponseRedirect
from .models import new
@ -27,6 +27,8 @@ def home(request):
def set_language(request, lang_code):
next = '/'
if request.GET.get('next'):
next = request.GET.get('next')
response = HttpResponseRedirect(next)
if lang_code and check_for_language(lang_code):
if next:
@ -42,6 +44,7 @@ def set_language(request, lang_code):
path=settings.LANGUAGE_COOKIE_PATH,
domain=settings.LANGUAGE_COOKIE_DOMAIN,
)
return response
return redirect('/'+lang_code+next)
# Create your views here.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,7 +21,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html: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
msgid "Username"
msgstr ""
@ -31,7 +31,7 @@ msgid "Email"
msgstr ""
#: 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
msgid "Website"
msgstr ""
@ -54,7 +54,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:66
#: 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
msgid "Score"
msgstr ""
@ -78,7 +78,7 @@ msgid "Reset password"
msgstr ""
#: 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_confirm.html:37
#: templates/registration/password_reset_done.html:17
@ -108,7 +108,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr ""
@ -166,39 +166,45 @@ msgstr ""
msgid "Published date"
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 !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
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"
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"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr ""
@ -234,27 +240,19 @@ msgstr ""
msgid "Flags counter"
msgstr ""
#: project/settings.py:120
msgid "Global Site"
#: project/settings.py:111
msgid "English"
msgstr ""
#: project/settings.py:121
msgid "Italian"
msgstr ""
#: project/settings.py:122
#: project/settings.py:112
msgid "German"
msgstr ""
#: project/settings.py:123
#: project/settings.py:113
msgid "French"
msgstr ""
#: project/settings.py:124
msgid "Spanish"
msgstr ""
#: project/settings.py:125
#: project/settings.py:114
msgid "Russian"
msgstr ""
@ -286,11 +284,11 @@ msgstr ""
msgid "Scoreboard"
msgstr ""
#: templates/base.html:86
#: templates/base.html:80
msgid "Logout"
msgstr ""
#: templates/base.html:93
#: templates/base.html:87
msgid "Sign Up"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,7 +21,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html: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
msgid "Username"
msgstr ""
@ -31,7 +31,7 @@ msgid "Email"
msgstr ""
#: 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
msgid "Website"
msgstr ""
@ -54,7 +54,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:66
#: 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
msgid "Score"
msgstr ""
@ -78,7 +78,7 @@ msgid "Reset password"
msgstr ""
#: 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_confirm.html:37
#: templates/registration/password_reset_done.html:17
@ -108,7 +108,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr ""
@ -166,39 +166,45 @@ msgstr ""
msgid "Published date"
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 !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
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"
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"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr ""
@ -234,27 +240,19 @@ msgstr ""
msgid "Flags counter"
msgstr ""
#: project/settings.py:120
msgid "Global Site"
#: project/settings.py:111
msgid "English"
msgstr ""
#: project/settings.py:121
msgid "Italian"
msgstr ""
#: project/settings.py:122
#: project/settings.py:112
msgid "German"
msgstr ""
#: project/settings.py:123
#: project/settings.py:113
msgid "French"
msgstr ""
#: project/settings.py:124
msgid "Spanish"
msgstr ""
#: project/settings.py:125
#: project/settings.py:114
msgid "Russian"
msgstr ""
@ -286,11 +284,11 @@ msgstr ""
msgid "Scoreboard"
msgstr ""
#: templates/base.html:86
#: templates/base.html:80
msgid "Logout"
msgstr ""
#: templates/base.html:93
#: templates/base.html:87
msgid "Sign Up"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,7 +21,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html: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
msgid "Username"
msgstr ""
@ -31,7 +31,7 @@ msgid "Email"
msgstr ""
#: 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
msgid "Website"
msgstr ""
@ -54,7 +54,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:66
#: 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
msgid "Score"
msgstr ""
@ -78,7 +78,7 @@ msgid "Reset password"
msgstr ""
#: 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_confirm.html:37
#: templates/registration/password_reset_done.html:17
@ -108,7 +108,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr ""
@ -166,39 +166,45 @@ msgstr ""
msgid "Published date"
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 !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
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"
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"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr ""
@ -234,27 +240,19 @@ msgstr ""
msgid "Flags counter"
msgstr ""
#: project/settings.py:120
msgid "Global Site"
#: project/settings.py:111
msgid "English"
msgstr ""
#: project/settings.py:121
msgid "Italian"
msgstr ""
#: project/settings.py:122
#: project/settings.py:112
msgid "German"
msgstr ""
#: project/settings.py:123
#: project/settings.py:113
msgid "French"
msgstr ""
#: project/settings.py:124
msgid "Spanish"
msgstr ""
#: project/settings.py:125
#: project/settings.py:114
msgid "Russian"
msgstr ""
@ -286,11 +284,11 @@ msgstr ""
msgid "Scoreboard"
msgstr ""
#: templates/base.html:86
#: templates/base.html:80
msgid "Logout"
msgstr ""
#: templates/base.html:93
#: templates/base.html:87
msgid "Sign Up"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,11 +21,8 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:50 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/templates/ctfs/ctf_info.html:50
#: ctfs/templates/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
#: templates/ctfs/ctf_info.html:50 templates/ctfs/ctfs_list.html:12
msgid "Username"
msgstr "Pseudo"
@ -34,10 +31,8 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:51
#: ctfs/templates/templates/ctfs/ctf_info.html:51
#: ctfs/templates/ctfs/ctf_info.html:55
#: scoreboard/templates/scoreboard/scoreboard.html:13
#: templates/ctfs/ctf_info.html:51
msgid "Website"
msgstr "Site internet"
@ -59,11 +54,8 @@ msgstr "Connecter Discord"
#: accounts/templates/accounts/edit.html:66
#: accounts/templates/accounts/profile.html:37
#: ctfs/templates/ctfs/ctf_info.html:52 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/templates/ctfs/ctf_info.html:52
#: ctfs/templates/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
#: templates/ctfs/ctf_info.html:52 templates/ctfs/ctfs_list.html:13
msgid "Score"
msgstr "Score"
@ -116,9 +108,7 @@ msgid "Points"
msgstr "Points"
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/templates/ctfs/ctf_info.html:53
#: templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr "Date"
@ -150,7 +140,9 @@ msgstr "Votre compte était inactif."
msgid ""
"The password must contain at least one letter and at least one digit or "
"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
msgid "A user with that email already exists."
@ -173,87 +165,64 @@ msgid "Updated."
msgstr "Mis à jour."
#: ctfs/templates/ctfs/ctf_info.html:9
#: ctfs/templates/templates/ctfs/ctf_info.html:9 templates/ctfs/ctf_info.html:9
msgid "Published date"
msgstr "Date de publication"
#: ctfs/templates/ctfs/ctf_info.html:17
#: ctfs/templates/templates/ctfs/ctf_info.html:17
#: 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 !"
msgstr "Félicitations !"
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/templates/ctfs/ctf_info.html:19
#: templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
msgstr "Déjà résolu"
#: ctfs/templates/ctfs/ctf_info.html:21 ctfs/templates/ctfs/ctf_info.html:30
#: 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
#: ctfs/templates/ctfs/ctf_info.html:25 ctfs/templates/ctfs/ctf_info.html:34
msgid "Start the challenge"
msgstr "Démarrer le challenge"
#: ctfs/templates/ctfs/ctf_info.html:23 ctfs/templates/ctfs/ctf_info.html:32
#: 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
#: ctfs/templates/ctfs/ctf_info.html:27 ctfs/templates/ctfs/ctf_info.html:36
msgid "Download"
msgstr "Télécharger"
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/templates/ctfs/ctf_info.html:27
#: templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr "Mauvais flag ! Vous pouvez le faire !"
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/templates/ctfs/ctf_info.html:45
#: templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr "Résolu par"
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/templates/ctfs/ctf_info.html:68
#: templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr "Personne n'a résolu ce CTF."
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/templates/ctfs/ctf_info.html:74
#: templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr "Auteur"
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/templates/ctfs/ctf_info.html:75
#: templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr "Points"
#: ctfs/templates/ctfs/ctfs_list.html:14
#: ctfs/templates/templates/ctfs/ctfs_list.html:14
#: templates/ctfs/ctfs_list.html:14
msgid "Solved"
msgstr "Résolu"
#: 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."
msgstr "Il n'y a pas de challenges dans cette catégorie."
#: ctfs/templates/ctfs/ctfs_list.html:42
#: ctfs/templates/templates/ctfs/ctfs_list.html:42
#: templates/ctfs/ctfs_list.html:42
msgid "Categories"
msgstr "Catégories"
#: ctfs/templates/ctfs/ctfs_list.html:48
#: ctfs/templates/templates/ctfs/ctfs_list.html:48 templates/base.html:54
#: templates/ctfs/ctfs_list.html:48
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
msgid "No category available."
msgstr "Il n'y a pas de catégorie disponible."
@ -273,19 +242,19 @@ msgstr "Pas de challenge disponible"
msgid "Flags counter"
msgstr "Compteur de flags"
#: project/settings.py:118
#: project/settings.py:111
msgid "English"
msgstr "Anglais"
#: project/settings.py:119
#: project/settings.py:112
msgid "German"
msgstr "Allemand"
#: project/settings.py:120
#: project/settings.py:113
msgid "French"
msgstr "Français"
#: project/settings.py:121
#: project/settings.py:114
msgid "Russian"
msgstr "Russe"
@ -357,7 +326,9 @@ msgstr "Soumettre"
msgid ""
"We've emailed you instructions for setting your password. You should receive "
"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
msgid "Reset"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -21,7 +21,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html: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
msgid "Username"
msgstr ""
@ -31,7 +31,7 @@ msgid "Email"
msgstr ""
#: 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
msgid "Website"
msgstr ""
@ -54,7 +54,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:66
#: 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
msgid "Score"
msgstr ""
@ -78,7 +78,7 @@ msgid "Reset password"
msgstr ""
#: 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_confirm.html:37
#: templates/registration/password_reset_done.html:17
@ -108,7 +108,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr ""
@ -166,39 +166,45 @@ msgstr ""
msgid "Published date"
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 !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
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"
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"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr ""
@ -234,27 +240,19 @@ msgstr ""
msgid "Flags counter"
msgstr ""
#: project/settings.py:120
msgid "Global Site"
#: project/settings.py:111
msgid "English"
msgstr ""
#: project/settings.py:121
msgid "Italian"
msgstr ""
#: project/settings.py:122
#: project/settings.py:112
msgid "German"
msgstr ""
#: project/settings.py:123
#: project/settings.py:113
msgid "French"
msgstr ""
#: project/settings.py:124
msgid "Spanish"
msgstr ""
#: project/settings.py:125
#: project/settings.py:114
msgid "Russian"
msgstr ""
@ -286,11 +284,11 @@ msgstr ""
msgid "Scoreboard"
msgstr ""
#: templates/base.html:86
#: templates/base.html:80
msgid "Logout"
msgstr ""
#: templates/base.html:93
#: templates/base.html:87
msgid "Sign Up"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -23,7 +23,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html: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
msgid "Username"
msgstr ""
@ -33,7 +33,7 @@ msgid "Email"
msgstr ""
#: 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
msgid "Website"
msgstr ""
@ -56,7 +56,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:66
#: 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
msgid "Score"
msgstr "счет"
@ -80,7 +80,7 @@ msgid "Reset password"
msgstr ""
#: 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_confirm.html:37
#: templates/registration/password_reset_done.html:17
@ -110,7 +110,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:15
#: ctfs/templates/ctfs/ctf_info.html:53
#: ctfs/templates/ctfs/ctf_info.html:57
msgid "Date"
msgstr ""
@ -168,39 +168,45 @@ msgstr ""
msgid "Published date"
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 !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:19
#: ctfs/templates/ctfs/ctf_info.html:23
msgid "Already flagged"
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"
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"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:31
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:45
#: ctfs/templates/ctfs/ctf_info.html:49
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:68
#: ctfs/templates/ctfs/ctf_info.html:72
msgid "Nobody have solved this CTF."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:74
#: ctfs/templates/ctfs/ctf_info.html:78
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:75
#: ctfs/templates/ctfs/ctf_info.html:79
msgid "Point reward"
msgstr ""
@ -236,27 +242,19 @@ msgstr ""
msgid "Flags counter"
msgstr ""
#: project/settings.py:120
msgid "Global Site"
#: project/settings.py:111
msgid "English"
msgstr ""
#: project/settings.py:121
msgid "Italian"
msgstr ""
#: project/settings.py:122
#: project/settings.py:112
msgid "German"
msgstr ""
#: project/settings.py:123
#: project/settings.py:113
msgid "French"
msgstr ""
#: project/settings.py:124
msgid "Spanish"
msgstr ""
#: project/settings.py:125
#: project/settings.py:114
msgid "Russian"
msgstr ""
@ -288,11 +286,11 @@ msgstr ""
msgid "Scoreboard"
msgstr ""
#: templates/base.html:86
#: templates/base.html:80
msgid "Logout"
msgstr "Выйти"
#: templates/base.html:93
#: templates/base.html:87
msgid "Sign Up"
msgstr ""

View File

@ -14,19 +14,14 @@ import os
from django.utils.translation import gettext_lazy as _
from local_settings import *
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# 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
INSTALLED_APPS = [

View File

@ -18,7 +18,7 @@
{% for s in scores %}
<tr>
<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>
{% if s.user.userprofileinfo.portfolio_site %}
<a href="{{ s.user.userprofileinfo.portfolio_site }}" target="_blank">{{ s.user.userprofileinfo.portfolio_site }}</a>

View File

@ -48,7 +48,7 @@
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
{% if 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 %}
{% else %}
<a class="dropdown-item">{% translate "No category available." %}</a>
@ -64,7 +64,7 @@
{% get_available_languages as languages %}
{% for lang_code, lang_name in languages %}
<li class="nav-item dropdown">
<a class="flag_link" href="{% url 'set_language' lang_code %}">
<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 }}"/>
</a>
</li>

View File

@ -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 %}

View File

@ -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;">&#10003;</th>
{% else %}
<th scope="row" style="color:red;">&#10005;</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 %}