Compare commits
91 Commits
29dc697bdc
...
09377c509f
Author | SHA1 | Date |
---|---|---|
Danhia | 09377c509f | |
Danhia | 6a76f4b99f | |
ysaito | 5908ce4778 | |
Danhia | 4e5fe52984 | |
Danhia | 2f24fae611 | |
Danhia | 02385dcd08 | |
ysaito | 7b2de06225 | |
ysaito | ba1cb03dbf | |
Danhia | 11164bb84a | |
Danhia | 67a4d180e0 | |
Danhia | 3b86441259 | |
Danhia | 7b2552f0b5 | |
Danhia | eac835bef5 | |
Danhia | 06593b26f9 | |
Danhia | e8f5f33269 | |
Danhia | f0479f6577 | |
Danhia | 60a59b23e6 | |
Danhia | 8f32ef9a6e | |
Danhia | a0b76903a7 | |
Danhia | a7de7b8054 | |
Danhia | 0d734e98b1 | |
Danhia | 3d24fe9b3b | |
Danhia | ba0d75c250 | |
Danhia | 3ae80ca17f | |
Danhia | a7e75b2a43 | |
Danhia | 9ea67ae2a0 | |
Danhia | 899a01e472 | |
Danhia | c40d49c326 | |
Starthur | d6b1380552 | |
Arthur-TRT | d0c93f98a1 | |
Arthur-TRT | 97e120e5fc | |
Danhia | 494377399c | |
Starthur | 28d8874272 | |
Starthur | b9704d3cb3 | |
Danhia | 0ac395def8 | |
Danhia | 7ff556a986 | |
Danhia | 5e02041f0c | |
Danhia | f75a034094 | |
Danhia | 5f28bc5d2c | |
ysaito | 904ce1b748 | |
ysaito | 5b15b9cd6f | |
ysaito | 5d46bd6df0 | |
ysaito | 67de669459 | |
ysaito | 26aeb6d7bd | |
Danhia | 1b89fa88d8 | |
Danhia | 0bb3a8b805 | |
Danhia | 5eec76dd00 | |
Clément Hamada | 6b6f264fe0 | |
Clément Hamada | c4fd6d05c3 | |
Danhia | 901c73a4f2 | |
Danhia | 01c0f28b16 | |
Danhia | 7174cf9edb | |
Danhia | ef0fcc5fea | |
Danhia | aabba3ea53 | |
Miliviu | 1abeabebfe | |
Danhia | 9f2d78ac33 | |
Danhia | 27ed107501 | |
Miliviu | 0dea7fb619 | |
Danhia | 23529b3b07 | |
Danhia | cb9bc7cc56 | |
Danhia | af4912837f | |
Miliviu | 187579e61c | |
Miliviu | fabe417fe2 | |
Miliviu | a6a5e424df | |
Danhia | bcf0c51ba5 | |
Danhia | 241a3f2bc1 | |
Danhia | cb46708e5c | |
Danhia | 3c166f3834 | |
Danhia | 92a1dca27c | |
Danhia | 96121e401e | |
ix | 97f6b99133 | |
Danhia | c45cfed8d4 | |
ix | 5dc04f888b | |
Danhia | 993e1fa998 | |
Danhia | 9d33985fa4 | |
Clément Hamada | 0cd862734e | |
Clément Hamada | aed129b4b9 | |
Clément Hamada | d1ab64885e | |
Clément Hamada | b2cf802ab5 | |
Clément Hamada | 266e018d83 | |
Danhia | 8fd25d8fa6 | |
ix | 53fe69aa09 | |
Danhia | aadb2ac858 | |
ix | 34b8829797 | |
ix | 619ddf3d07 | |
ix | 5d00c5733f | |
ix | 248cdc54d5 | |
Danhia | f8eef0ef3d | |
Danhia | e806b23812 | |
Danhia | 0fbf7b77c3 | |
Danhia | 985f440ede |
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "src/ctfs/templates/challenges"]
|
||||||
|
path = src/ctfs/templates/challenges
|
||||||
|
url = https://gitea.42ctf.org/42CTF/challenges-descriptions.git
|
74
README.md
74
README.md
|
@ -1,50 +1,34 @@
|
||||||
# 42ctf
|
# 42CTF
|
||||||
CTF by 42 students
|
|
||||||
|
[42CTF](https://www.42ctf.org) is a CTF platform created by School 42 students and open to anyone.
|
||||||
|
|
||||||
|
|
||||||
### Todo
|
### Todo
|
||||||
|
|
||||||
- [x] Serveur SMTP & reset password
|
TODO has been migrated to [issues](https://gitea.42ctf.org/42CTF/website/issues) !
|
||||||
- [x] Clean le repo
|
And hopefully, it is not redirected anymore to `/dev/null`.
|
||||||
- [x] Accès au chall après validation
|
|
||||||
- [x] Section "Intro"
|
|
||||||
- [x] Section Treasure Hunt
|
|
||||||
- [x] Edition de profil
|
|
||||||
- [x] Ajouter de la Doc
|
|
||||||
- [x] Infrastructure de pwn
|
|
||||||
- [x] Organiser une session découverte
|
|
||||||
- [x] Compteur de flags
|
|
||||||
- [x] Graphiques statistiques
|
|
||||||
- [x] Création d'un discord linkable
|
|
||||||
- [ ] Refonte du linkage discord -> 42ctf
|
|
||||||
- [x] Traduction du site
|
|
||||||
- [x] Anglais
|
|
||||||
- [x] Français
|
|
||||||
- [ ] Russe
|
|
||||||
- [ ] Espagnol
|
|
||||||
- [ ] Italien
|
|
||||||
- [ ] OAuth 42
|
|
||||||
- [ ] Feature proposer une solution à un challenge
|
|
||||||
- [ ] Système de badge/succès
|
|
||||||
- [ ] Génération d'une page résumant le profil d'un utilisateur (ex: show resume sur intra.42.fr)
|
|
||||||
|
|
||||||
#### Event feature
|
### How to contribute ?
|
||||||
|
|
||||||
- [X] make relation between user and events
|
First, you need to contact a 42CTF admin to get an account on the 42CTF gitea.
|
||||||
- [X] make scoreboard for events
|
You can contact us on [discord](https://discord.gg/3KDvt6hbWW) or by [email](mailto:42ctf@protonmail.com).
|
||||||
- [X] make access mod for events :
|
You can also fill this [form](https://forms.42l.fr/apps/forms/bpmyGR37AR4yHGnC) and we'll contact you.
|
||||||
- [X] Sub button for public events
|
Then, once you have a gitea account, you can fork this repository, do some stuff, and open a pull request.
|
||||||
- [X] Access by password
|
|
||||||
- [X] Begin date for display challenges
|
If you want to translate the platform, then have a look at the [wiki](https://gitea.42ctf.org/42CTF/website/wiki).
|
||||||
- [X] Ending date for stop flag submission
|
|
||||||
- [ ] Access by invite link
|
If you want to help with bot development, it has now its own [repository](https://gitea.42ctf.org/42CTF/bot)
|
||||||
- [X] Admin rights
|
|
||||||
- [X] Admin can access to events pages without password
|
### How to set up my dev environment ?
|
||||||
- [X] Admin can subscribe to event without password
|
|
||||||
- [X] process flag submission
|
There is only one file missing on this repository for you to run the server: `local_settings.py`.
|
||||||
- [X] increment user score in Scores model
|
You should create one in the `src` directory, with the following content:
|
||||||
- [X] add filters for admin dashboard
|
```
|
||||||
- [X] add search in fields in admin dashboard
|
DEBUG = True
|
||||||
- [X] display more information in admin dashboard
|
SECRET_KEY = 'what you want'
|
||||||
- [X] Smooth display of events listing
|
```
|
||||||
- [X] Event info page with background and noice display
|
|
||||||
- [ ] Create teams for events
|
When you'll run `python manage.py migrate` then `python manage.py runserver`, an empty database will be automatically created.
|
||||||
|
The `local_settings.py` is in the `.gitignore` and should stay that way, so we don't accidentally overwrite the production file when we deploy.
|
||||||
|
|
||||||
|
To obtain administrator rights you can run `python manage.py createsuperuser`.
|
104
bot.py
104
bot.py
|
@ -1,104 +0,0 @@
|
||||||
import os
|
|
||||||
import discord
|
|
||||||
import discord.utils
|
|
||||||
import urllib.request, json
|
|
||||||
import asyncio
|
|
||||||
import json
|
|
||||||
import logging
|
|
||||||
|
|
||||||
TOKEN = os.getenv('DISCORD_TOKEN')
|
|
||||||
GUILD = '42ctf'
|
|
||||||
|
|
||||||
intents = discord.Intents.all()
|
|
||||||
client = discord.Client(intents=intents)
|
|
||||||
|
|
||||||
db_file = open('members.json', 'r')
|
|
||||||
users = json.load(db_file)
|
|
||||||
db_file.close()
|
|
||||||
|
|
||||||
logging.basicConfig(filename='bot.log', format='%(asctime)s %(message)s', level=logging.INFO)
|
|
||||||
|
|
||||||
guild = ''
|
|
||||||
roles = {}
|
|
||||||
|
|
||||||
def get_rank(token):
|
|
||||||
url = urllib.request.urlopen("https://www.42ctf.org/accounts/rank/" + token)
|
|
||||||
data = json.loads(url.read().decode())
|
|
||||||
rank = data['rank']
|
|
||||||
return rank
|
|
||||||
|
|
||||||
async def watch_roles():
|
|
||||||
global users
|
|
||||||
await client.wait_until_ready() # ensures cache is loaded
|
|
||||||
while not client.is_closed():
|
|
||||||
for member_id, token in users.items():
|
|
||||||
if (token == "0000"):
|
|
||||||
continue
|
|
||||||
member = discord.utils.get(guild.members, id=int(member_id))
|
|
||||||
rank = get_rank(token)
|
|
||||||
if rank == 1 and roles['top1'] not in member.roles:
|
|
||||||
await member.add_roles(roles['top1'])
|
|
||||||
await member.remove_roles(roles['top10'])
|
|
||||||
await member.remove_roles(roles['top50'])
|
|
||||||
elif rank > 1 and rank <= 10 and roles['top10'] not in member.roles:
|
|
||||||
await member.add_roles(roles['top10'])
|
|
||||||
await member.remove_roles(roles['top1'])
|
|
||||||
await member.remove_roles(roles['top50'])
|
|
||||||
elif rank > 10 and rank <= 50 and roles['top50'] not in member.roles:
|
|
||||||
await member.add_roles(roles['top50'])
|
|
||||||
await member.remove_roles(roles['top10'])
|
|
||||||
await member.remove_roles(roles['top1'])
|
|
||||||
elif rank > 50:
|
|
||||||
await member.remove_roles(roles['top1'])
|
|
||||||
await member.remove_roles(roles['top10'])
|
|
||||||
await member.remove_roles(roles['top50'])
|
|
||||||
await asyncio.sleep(60)
|
|
||||||
|
|
||||||
@client.event
|
|
||||||
async def on_ready():
|
|
||||||
global guild, roles
|
|
||||||
guild = discord.utils.get(client.guilds, name=GUILD)
|
|
||||||
roles['top10'] = discord.utils.get(guild.roles, id=801787467064672286)
|
|
||||||
roles['top1'] = discord.utils.get(guild.roles, id=798638767359524875)
|
|
||||||
roles['top50'] = discord.utils.get(guild.roles, id=803729539145924649)
|
|
||||||
|
|
||||||
logging.info('%s is connected to the following guild: %s(id: %d)', client.user, guild.name, guild.id)
|
|
||||||
client.loop.create_task(watch_roles())
|
|
||||||
|
|
||||||
@client.event
|
|
||||||
async def on_message(message):
|
|
||||||
global guild, roles
|
|
||||||
|
|
||||||
if message.author == client.user:
|
|
||||||
return
|
|
||||||
|
|
||||||
if '!connect' in message.content:
|
|
||||||
try:
|
|
||||||
user_token = message.content.split(' ')[1]
|
|
||||||
member = discord.utils.get(guild.members, name=message.author.name)
|
|
||||||
rank = get_rank(user_token)
|
|
||||||
users[str(member.id)] = user_token
|
|
||||||
logging.info("MESSAGE: from %s with token %s", message.author.name, user_token)
|
|
||||||
with open('members.json', 'w') as json_file:
|
|
||||||
json.dump(users, json_file)
|
|
||||||
if rank == 1:
|
|
||||||
await member.add_roles(roles['top1'])
|
|
||||||
response = "Congratulations, you're now Top 1. But for how long ?"
|
|
||||||
|
|
||||||
elif (rank <= 10):
|
|
||||||
await member.add_roles(roles['top10'])
|
|
||||||
response = "You've been granted the Top 10 role. Now, go away and flag !"
|
|
||||||
|
|
||||||
elif rank <= 50:
|
|
||||||
await member.add_roles(roles['top50'])
|
|
||||||
response = "You've been granted the Top 50 role. Now, go away and flag !"
|
|
||||||
|
|
||||||
else:
|
|
||||||
response = "No role for you now, but I'll keep watching you."
|
|
||||||
except IndexError:
|
|
||||||
response = 'usage: !connect 42ctf_token'
|
|
||||||
await message.author.create_dm()
|
|
||||||
await message.author.dm_channel.send(response)
|
|
||||||
|
|
||||||
|
|
||||||
client.run(TOKEN)
|
|
|
@ -1,3 +1,3 @@
|
||||||
Django
|
Django==3.2.11
|
||||||
requests
|
requests==2.27.1
|
||||||
authlib
|
authlib==0.15.5
|
||||||
|
|
|
@ -2,67 +2,89 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-9">
|
<div class="col-sm-12 col-md-9">
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>Edit info</h3>
|
<h3>Edit info</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="bloc-body">
|
<div class="bloc-body">
|
||||||
<div class="col-sm-12 col-md-12 mx-auto">
|
<div class="col-sm-12 col-md-12 mx-auto">
|
||||||
{{ u_form.non_field_errors }}
|
{{ u_form.non_field_errors }}
|
||||||
{% if error is not None %}
|
{% if error is not None %}
|
||||||
<span class="message error-msg">{{ error }}</span>
|
<span class="message error-msg">{{ error }}</span>
|
||||||
{% elif success is not None %}
|
{% elif success is not None %}
|
||||||
<span class="message success-msg">{{ success }}</span>
|
<span class="message success-msg">{{ success }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form method='POST'>
|
<form method='POST'>
|
||||||
<div class="edit-infos-grp">
|
<div class="edit-infos-grp">
|
||||||
|
{%csrf_token%}
|
||||||
|
<label for="{{ u_form.username.id_for_label }}">{% trans "Username" %} *</label>
|
||||||
|
{{ u_form.username.errors}}
|
||||||
|
{{u_form.username}}
|
||||||
|
</br>
|
||||||
|
<label for="{{ u_form.email.id_for_label }}">{% trans "Email" %} *</label>
|
||||||
|
{{ u_form.email.errors}}
|
||||||
|
{{u_form.email}}
|
||||||
|
</br>
|
||||||
|
</br>
|
||||||
|
<label for="{{ p_form.portfolio_site.id_for_label }}">{% trans "Website" %}</label>
|
||||||
|
{{p_form.portfolio_site}}
|
||||||
|
</br>
|
||||||
|
</br>Token
|
||||||
|
<input type='text' readonly value='{{token}}'>
|
||||||
|
</br>
|
||||||
|
<input class="form-control" type="submit" value="{% trans " Apply" %}">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ctf-block">
|
||||||
|
<div class="ctf-head">
|
||||||
|
<h3>{% trans "Connected accounts" %}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="bloc-body">
|
||||||
|
<div class="d-flex">
|
||||||
|
{% if user.userprofileinfo.discord_id|length > 0 %}
|
||||||
|
<form action="{% url 'accounts:connections-disconnect-discord' %}" method='POST'
|
||||||
|
class="form-inline p-2">
|
||||||
{%csrf_token%}
|
{%csrf_token%}
|
||||||
<label for="{{ u_form.username.id_for_label }}">{% trans "Username" %} *</label>
|
<button class="btn btn-dark" type="submit">{% trans "Disconnect Discord" %}</button>
|
||||||
{{ u_form.username.errors}}
|
</form>
|
||||||
{{u_form.username}}
|
{% else %}
|
||||||
</br>
|
<form action="{% url 'accounts:connections-connect-discord' %}" method='POST'
|
||||||
<label for="{{ u_form.email.id_for_label }}">{% trans "Email" %} *</label>
|
class="form-inline p-2">
|
||||||
{{ u_form.email.errors}}
|
{%csrf_token%}
|
||||||
{{u_form.email}}
|
<button class="btn btn-dark" type="submit">{% trans "Connect Discord" %}</button>
|
||||||
</br>
|
</form>
|
||||||
</br>
|
{% endif %}
|
||||||
<label for="{{ p_form.portfolio_site.id_for_label }}">{% trans "Website" %}</label>
|
</div>
|
||||||
{{p_form.portfolio_site}}
|
|
||||||
</br>
|
|
||||||
</br>Token
|
|
||||||
<input type='text' readonly value='{{token}}'>
|
|
||||||
</br>
|
|
||||||
<input class="form-control" type="submit" value="{% trans "Apply" %}">
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
||||||
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
<ul class="list-group">
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item">{{ user.username }}</li>
|
<li class="list-group-item">{{ user.username }}</li>
|
||||||
<li class="list-group-item">{% trans "Score" %} : {{ user.userprofileinfo.score }}</li>
|
<li class="list-group-item">{% trans "Score" %} : {{ user.userprofileinfo.score }}</li>
|
||||||
{% if user.userprofileinfo.portfolio_site %}
|
{% if user.userprofileinfo.portfolio_site %}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<a href="{{ user.userprofileinfo.portfolio_site }}" target="_blank">
|
<a href="{{ user.userprofileinfo.portfolio_site }}" target="_blank">
|
||||||
{{ user.userprofileinfo.portfolio_site }}
|
{{ user.userprofileinfo.portfolio_site }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li>
|
<li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<form method='GET' action="{% url 'accounts:delete_account' %}">
|
<form method='GET' action="{% url 'accounts:delete_account' %}">
|
||||||
{%csrf_token%}
|
{%csrf_token%}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<input class="form-control" type="submit" value="{% trans "Delete my account" %}">
|
<input class="form-control" type="submit" value="{% trans " Delete my account" %}">
|
||||||
</li>
|
</li>
|
||||||
</form>
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -4,47 +4,52 @@ from django.views.decorators.http import require_POST
|
||||||
from django.views.defaults import bad_request
|
from django.views.defaults import bad_request
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
|
from django.contrib.sites.models import Site
|
||||||
import os
|
import os
|
||||||
|
|
||||||
oauth = OAuth()
|
oauth = OAuth()
|
||||||
|
|
||||||
oauth.register(
|
oauth.register(
|
||||||
name='discord',
|
name='discord',
|
||||||
client_id=os.getenv('OAUTH2_DISCORD_CLIENT_ID'),
|
client_id=os.getenv('OAUTH2_DISCORD_CLIENT_ID'),
|
||||||
client_secret=os.getenv('OAUTH2_DISCORD_CLIENT_SECRET'),
|
client_secret=os.getenv('OAUTH2_DISCORD_CLIENT_SECRET'),
|
||||||
access_token_url='https://discord.com/api/oauth2/token',
|
access_token_url='https://discord.com/api/oauth2/token',
|
||||||
authorize_url='https://discord.com/api/oauth2/authorize',
|
authorize_url='https://discord.com/api/oauth2/authorize',
|
||||||
client_kwargs={'scope': 'identify'},
|
client_kwargs={'scope': 'identify'},
|
||||||
api_base_url='https://discord.com/api/'
|
api_base_url='https://discord.com/api/'
|
||||||
)
|
)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@require_POST
|
@require_POST
|
||||||
def connect(request):
|
def connect(request):
|
||||||
if request.user.userprofileinfo.discord_id:
|
if request.user.userprofileinfo.discord_id:
|
||||||
return bad_request(request, "Already connected")
|
return bad_request(request, "Already connected")
|
||||||
redirect_uri = reverse('accounts:connections-connect-discord-authorize')
|
site = Site.objects.get_current()
|
||||||
redirect_uri = request.build_absolute_uri(redirect_uri)
|
redirect_uri = reverse('accounts:connections-connect-discord-authorize')
|
||||||
print(redirect_uri)
|
redirect_uri = "https://" + site.domain + redirect_uri[3:] # remove language code
|
||||||
return oauth.discord.authorize_redirect(request, redirect_uri)
|
print(redirect_uri)
|
||||||
|
return oauth.discord.authorize_redirect(request, redirect_uri)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def authorize(request):
|
def authorize(request):
|
||||||
if request.user.userprofileinfo.discord_id:
|
if request.user.userprofileinfo.discord_id:
|
||||||
return bad_request(request, "Already connected")
|
return bad_request(request, "Already connected")
|
||||||
token = oauth.discord.authorize_access_token(request)
|
try:
|
||||||
response = oauth.discord.get('users/@me', token=token)
|
token = oauth.discord.authorize_access_token(request)
|
||||||
response = response.json()
|
except:
|
||||||
discord_id = response['id']
|
return redirect('accounts:edit')
|
||||||
request.user.userprofileinfo.discord_id = discord_id
|
response = oauth.discord.get('users/@me', token=token)
|
||||||
request.user.userprofileinfo.save()
|
response = response.json()
|
||||||
return redirect('accounts:edit')
|
discord_id = response['id']
|
||||||
|
request.user.userprofileinfo.discord_id = discord_id
|
||||||
|
request.user.userprofileinfo.save()
|
||||||
|
return redirect('accounts:edit')
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@require_POST
|
@require_POST
|
||||||
def disconnect(request):
|
def disconnect(request):
|
||||||
if not request.user.userprofileinfo.discord_id:
|
if not request.user.userprofileinfo.discord_id:
|
||||||
return bad_request(request, "Already disconnected")
|
return bad_request(request, "Already disconnected")
|
||||||
request.user.userprofileinfo.discord_id = None
|
request.user.userprofileinfo.discord_id = None
|
||||||
request.user.userprofileinfo.save()
|
request.user.userprofileinfo.save()
|
||||||
return redirect('accounts:edit')
|
return redirect('accounts:edit')
|
||||||
|
|
|
@ -124,16 +124,18 @@ def profile(request, user_name):
|
||||||
member = True
|
member = True
|
||||||
else:
|
else:
|
||||||
member = False
|
member = False
|
||||||
cats = Category.objects.all()
|
all_cats = Category.objects.all()
|
||||||
|
cats = [cat for cat in all_cats if CTF.objects.filter(category__name=cat.name, event=None, disabled=False)]
|
||||||
pointDatas = {}
|
pointDatas = {}
|
||||||
|
|
||||||
for cat in cats:
|
for cat in cats:
|
||||||
# prepare categories
|
# prepare categories
|
||||||
solved_count = CTF_flags.objects.filter(user=user_obj, ctf__event=None , ctf__category__name=cat.name).count()
|
solved = CTF_flags.objects.filter(user=user_obj, ctf__category__name=cat.name, ctf__event=None, ctf__disabled=False).order_by('flag_date')
|
||||||
max_count = CTF.objects.filter(category__name=cat.name, event=None).count()
|
max_count = CTF.objects.filter(category__name=cat.name, event=None, disabled=False).count()
|
||||||
# get datas
|
# get datas
|
||||||
somme = 0
|
somme = 0
|
||||||
solved = CTF_flags.objects.filter(user=user_obj, ctf__category__name=cat.name, ctf__event=None).order_by('flag_date')
|
solved_count = len(solved)
|
||||||
|
|
||||||
pointDatas[cat.name] = []
|
pointDatas[cat.name] = []
|
||||||
pointDatas[cat.name].append([user_obj.date_joined.timestamp() * 1000, 0])
|
pointDatas[cat.name].append([user_obj.date_joined.timestamp() * 1000, 0])
|
||||||
percent = (solved_count / max_count) * 100
|
percent = (solved_count / max_count) * 100
|
||||||
|
@ -142,7 +144,7 @@ def profile(request, user_name):
|
||||||
somme += flag.ctf.points
|
somme += flag.ctf.points
|
||||||
pointDatas[cat.name].append([flag.flag_date.timestamp() * 1000, somme])
|
pointDatas[cat.name].append([flag.flag_date.timestamp() * 1000, somme])
|
||||||
|
|
||||||
solves = CTF_flags.objects.filter(user=user_obj, ctf__event=None).order_by('-flag_date')
|
solves = CTF_flags.objects.filter(user=user_obj, ctf__event=None, ctf__disabled=False).order_by('-flag_date')
|
||||||
solved = []
|
solved = []
|
||||||
somme = 0
|
somme = 0
|
||||||
solved.append([user_obj.date_joined.timestamp() * 1000, 0])
|
solved.append([user_obj.date_joined.timestamp() * 1000, 0])
|
||||||
|
@ -151,18 +153,7 @@ def profile(request, user_name):
|
||||||
solved.append([s.flag_date.timestamp() * 1000,somme])
|
solved.append([s.flag_date.timestamp() * 1000,somme])
|
||||||
|
|
||||||
return render(request,'accounts/profile.html', {'user':user_obj, 'solves':solves,'solved':solved,'catsDatas': catsDatas, 'pointDatas': pointDatas,
|
return render(request,'accounts/profile.html', {'user':user_obj, 'solves':solves,'solved':solved,'catsDatas': catsDatas, 'pointDatas': pointDatas,
|
||||||
'rank': rank, 'score' : somme, 'member' : member})
|
'rank': rank, 'score' : somme, 'member' : member, 'cats':cats})
|
||||||
|
|
||||||
def rank(request, token):
|
|
||||||
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username')
|
|
||||||
|
|
||||||
rank = 1
|
|
||||||
for elem in all_users:
|
|
||||||
if elem.token == token:
|
|
||||||
break
|
|
||||||
rank += 1
|
|
||||||
data = {"rank": rank}
|
|
||||||
return JsonResponse(data)
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def delete_account(request):
|
def delete_account(request):
|
||||||
|
@ -180,3 +171,14 @@ def delete_account(request):
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return render(request, 'accounts/delete.html', {'deleted': False, 'bad_password': False} )
|
return render(request, 'accounts/delete.html', {'deleted': False, 'bad_password': False} )
|
||||||
|
|
||||||
|
def rank(request, token):
|
||||||
|
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username')
|
||||||
|
|
||||||
|
rank = 1
|
||||||
|
for elem in all_users:
|
||||||
|
if elem.token == token:
|
||||||
|
break
|
||||||
|
rank += 1
|
||||||
|
data = {"rank": rank}
|
||||||
|
return JsonResponse(data)
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
|
@ -0,0 +1,6 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class ApiConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'api'
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
|
@ -0,0 +1,6 @@
|
||||||
|
from django.urls import path
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('bot/discord', views.discord_bot, name='discord_bot'),
|
||||||
|
]
|
|
@ -0,0 +1,27 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
from accounts.models import UserProfileInfo
|
||||||
|
from django.http import JsonResponse
|
||||||
|
import os
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
|
|
||||||
|
|
||||||
|
def discord_bot(request):
|
||||||
|
if request.method != 'GET':
|
||||||
|
return JsonResponse({'error':'bad request'})
|
||||||
|
|
||||||
|
token = request.GET.get('token')
|
||||||
|
auth_token = os.getenv('BOT_TOKEN')
|
||||||
|
|
||||||
|
if (token != auth_token or not auth_token):
|
||||||
|
return JsonResponse({'error':'not authorized'})
|
||||||
|
|
||||||
|
all_users = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')
|
||||||
|
data = {}
|
||||||
|
rank = 1
|
||||||
|
for user in all_users:
|
||||||
|
if user.discord_id:
|
||||||
|
data[user.discord_id] = rank
|
||||||
|
rank += 1
|
||||||
|
|
||||||
|
return JsonResponse(data)
|
|
@ -0,0 +1,28 @@
|
||||||
|
from collections import defaultdict
|
||||||
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
from accounts.models import UserProfileInfo
|
||||||
|
from ctfs.models import CTF_flags, CTF
|
||||||
|
from math import log
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Actualize challenges points based on number of solves'
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
challenges = CTF.objects.filter(event=None, disabled=False).exclude(category__name="-Intro-")
|
||||||
|
|
||||||
|
for ctf in challenges:
|
||||||
|
solves = CTF_flags.objects.filter(ctf=ctf)
|
||||||
|
nb_solves = len(solves)
|
||||||
|
|
||||||
|
if nb_solves > 0:
|
||||||
|
new_points = max(200 - int(log(nb_solves)*8.5)*5, 5)
|
||||||
|
else:
|
||||||
|
new_points = 200
|
||||||
|
|
||||||
|
if new_points != ctf.points:
|
||||||
|
diff = ctf.points - new_points
|
||||||
|
ctf.points = new_points
|
||||||
|
ctf.save()
|
||||||
|
for s in solves:
|
||||||
|
s.user.userprofileinfo.score -= diff
|
||||||
|
s.user.userprofileinfo.save()
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.1.5 on 2022-02-03 17:19
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('ctfs', '0006_alter_ctf_event'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='disabled',
|
||||||
|
field=models.BooleanField(default=False),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Generated by Django 3.2.11 on 2022-02-15 16:13
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('ctfs', '0007_ctf_disabled'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='description_de',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='description_ru',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ctf',
|
||||||
|
name='port',
|
||||||
|
field=models.PositiveSmallIntegerField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
|
@ -12,12 +12,12 @@ class Category(models.Model):
|
||||||
class CTF(models.Model):
|
class CTF(models.Model):
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
flag = models.CharField(max_length=100)
|
flag = models.CharField(max_length=100)
|
||||||
|
disabled = models.BooleanField(default=False)
|
||||||
description = models.TextField(blank=True)
|
description = models.TextField(blank=True)
|
||||||
description_en = models.TextField(blank=True)
|
description_en = models.TextField(blank=True)
|
||||||
description_ru = models.TextField(blank=True)
|
|
||||||
description_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)
|
||||||
|
port = models.PositiveSmallIntegerField(null=True, blank=True)
|
||||||
event = models.ForeignKey(Event, null=True, blank=True, on_delete=models.CASCADE)
|
event = models.ForeignKey(Event, null=True, blank=True, on_delete=models.CASCADE)
|
||||||
points = models.PositiveSmallIntegerField()
|
points = models.PositiveSmallIntegerField()
|
||||||
slug = models.SlugField(max_length=55)
|
slug = models.SlugField(max_length=55)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 18fac3978d21dc824bcffa2bc960aa2bf6b4abd9
|
|
@ -2,6 +2,8 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load is_member %}
|
{% load is_member %}
|
||||||
|
{% load get_chall %}
|
||||||
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-9">
|
<div class="col-sm-12 col-md-9">
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
|
@ -15,11 +17,11 @@
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{% if description %}
|
{% get_chall_by_lang ctf lang as content %}
|
||||||
{{ description|safe }}
|
{{ content | safe }}
|
||||||
{% else %}
|
<!-- {% if ctf.port %}
|
||||||
{% trans "No translation available. Please try another language (English or French)." %}
|
<b>nc challenges.42ctf.org {{ ctf.port }}</b>
|
||||||
{% endif %}
|
{% endif %} -->
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-footer">
|
<div class="ctf-footer">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
from django import template
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def get_chall_by_lang(chall, lang):
|
||||||
|
print(chall.slug)
|
||||||
|
filepath = "ctfs/templates/challenges/"+ lang + "/" + chall.slug + ".html"
|
||||||
|
print(filepath)
|
||||||
|
try:
|
||||||
|
with open(filepath) as fp:
|
||||||
|
return fp.read()
|
||||||
|
except:
|
||||||
|
return chall.description_en
|
|
@ -5,33 +5,38 @@ from .models import Category, CTF, CTF_flags
|
||||||
from .forms import submit_flag
|
from .forms import submit_flag
|
||||||
from accounts.models import UserProfileInfo
|
from accounts.models import UserProfileInfo
|
||||||
from django.utils.translation import get_language
|
from django.utils.translation import get_language
|
||||||
|
from math import log
|
||||||
|
from accounts.models import UserProfileInfo
|
||||||
|
|
||||||
|
def actualize_points(ctf):
|
||||||
|
if ctf.category.name == "-Intro-":
|
||||||
|
return
|
||||||
|
solves = CTF_flags.objects.filter(ctf=ctf)
|
||||||
|
nb_solves = len(solves)
|
||||||
|
|
||||||
|
new_points = max(200 - int(log(nb_solves)*8.5)*5, 5)
|
||||||
|
|
||||||
|
if new_points != ctf.points:
|
||||||
|
diff = ctf.points - new_points
|
||||||
|
ctf.points = new_points
|
||||||
|
ctf.save()
|
||||||
|
for s in solves:
|
||||||
|
s.user.userprofileinfo.score -= diff
|
||||||
|
s.user.userprofileinfo.save()
|
||||||
|
|
||||||
def 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)
|
||||||
ctfs = CTF.objects.filter(category=cat, event=None).order_by('points')
|
ctfs = CTF.objects.filter(category=cat, event=None, disabled=False).order_by('points')
|
||||||
for ex in ctfs:
|
for ex in ctfs:
|
||||||
ex.solved_num = CTF_flags.objects.filter(ctf=ex).count()
|
ex.solved_num = CTF_flags.objects.filter(ctf=ex).count()
|
||||||
ex.solved = ex.solved_by(request.user)
|
ex.solved = ex.solved_by(request.user)
|
||||||
return render(request, 'ctfs/ctfs_list.html', {'ctfs' : ctfs, 'cat' : cat})
|
return render(request, 'ctfs/ctfs_list.html', {'ctfs' : ctfs, 'cat' : cat})
|
||||||
|
|
||||||
def ctf(request, cat_slug, ctf_slug):
|
def ctf(request, cat_slug, ctf_slug):
|
||||||
ctf_info = get_object_or_404(CTF, slug=ctf_slug)
|
ctf_info = get_object_or_404(CTF, slug=ctf_slug, event=None)
|
||||||
flagged = False
|
flagged = False
|
||||||
solved_list = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
|
solved_list = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
|
||||||
description = get_description_by_lang(ctf_info)
|
|
||||||
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
|
||||||
|
@ -39,19 +44,20 @@ def ctf(request, cat_slug, ctf_slug):
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
form = submit_flag(data=request.POST)
|
form = submit_flag(data=request.POST)
|
||||||
if flagged == False and form.is_valid():
|
if flagged == False and form.is_valid():
|
||||||
if CTF.objects.filter(flag=request.POST.get('flag'), slug=ctf_slug):
|
if CTF.objects.filter(flag=request.POST.get('flag'), slug=ctf_slug, event=None):
|
||||||
new = CTF_flags(user = request.user, ctf = ctf_info, flag_date = timezone.now())
|
new = CTF_flags(user = request.user, ctf = ctf_info, flag_date = timezone.now())
|
||||||
new.save()
|
new.save()
|
||||||
profil = UserProfileInfo.objects.get(user=request.user)
|
profil = UserProfileInfo.objects.get(user=request.user)
|
||||||
profil.last_submission_date = timezone.now()
|
profil.last_submission_date = timezone.now()
|
||||||
profil.score += ctf_info.points
|
profil.score += ctf_info.points
|
||||||
profil.save()
|
profil.save()
|
||||||
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True, 'description': description, 'date': timezone.now()})
|
actualize_points(ctf_info)
|
||||||
|
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'valitated': True, 'date': timezone.now()})
|
||||||
else:
|
else:
|
||||||
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True, 'description': description, 'date': timezone.now()})
|
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'failed': True, 'date': timezone.now()})
|
||||||
else:
|
else:
|
||||||
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': True, 'description': description, 'date': timezone.now()})
|
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': True, 'date': timezone.now()})
|
||||||
else:
|
else:
|
||||||
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'description': description, 'date': timezone.now()})
|
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'date': timezone.now()})
|
||||||
else:
|
else:
|
||||||
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': flagged, 'description': description, 'date': timezone.now()})
|
return render(request, 'ctfs/ctf_info.html', { 'ctf' : ctf_info, 'solved_list': solved_list, 'alvalitated': flagged, 'date': timezone.now()})
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.1.5 on 2022-02-12 18:27
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('events', '0007_event_auto_match'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='event',
|
||||||
|
name='dynamic',
|
||||||
|
field=models.BooleanField(default=False),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.11 on 2022-02-15 16:06
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('events', '0008_event_dynamic'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='eventplayer',
|
||||||
|
name='id',
|
||||||
|
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='team',
|
||||||
|
name='id',
|
||||||
|
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -16,6 +16,7 @@ class Event(models.Model):
|
||||||
slug = models.SlugField(max_length=55)
|
slug = models.SlugField(max_length=55)
|
||||||
team_size = models.PositiveIntegerField(default=1)
|
team_size = models.PositiveIntegerField(default=1)
|
||||||
auto_match = models.BooleanField(default=False)
|
auto_match = models.BooleanField(default=False)
|
||||||
|
dynamic = models.BooleanField(default=False)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-9">
|
<div class="col-sm-12 col-md-9">
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
|
<a href="{% url 'events:event_info' event_slug=event.slug %}">< Back to event</a>
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{{ event.name }}</h3>
|
<h3>{{ event.name }}</h3>
|
||||||
<small>{% trans "This event starts at" %} : {{ event.start_date }}</small>
|
<small>{% trans "This event starts at" %} : {{ event.start_date }}</small>
|
||||||
|
@ -11,26 +12,26 @@
|
||||||
|
|
||||||
<div class="ctf-footer">
|
<div class="ctf-footer">
|
||||||
<div class="col-sm-8 col-md-6 mx-auto">
|
<div class="col-sm-8 col-md-6 mx-auto">
|
||||||
{% if logged == True%}
|
{% if logged == True%}
|
||||||
{% if registered == False %}
|
{% if registered == False %}
|
||||||
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
|
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if exist == True %}
|
{% if exist == True %}
|
||||||
<span class="message error-msg">{% trans "Name already taken." %}</span>
|
<span class="message error-msg">{% trans "Name already taken." %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h2>Create Team</h2>
|
<h2>Create Team</h2>
|
||||||
<form method="post" action="{% url 'events:create_team' event_slug=event.slug %}" class="create-team-form">
|
<form method="post" action="{% url 'events:create_team' event_slug=event.slug %}" class="create-team-form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input class="form-control" type="text" name="teamname" placeholder="{% trans "Team name" %} *" maxlength="150" required="" id="id_teamname"></br>
|
<input class="form-control" type="text" name="teamname" placeholder="{% trans "Team name" %} *" maxlength="150" required="" id="id_teamname"></br>
|
||||||
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
||||||
<input type="submit" name="" class="form-control" value="{% trans "Create Team" %}">
|
<input type="submit" name="" class="form-control" value="{% trans "Create Team" %}">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<h4>{% trans "You need to be logged to access this event." %}</h4>
|
<h4>{% trans "You need to be logged to access this event." %}</h4>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -38,24 +39,26 @@
|
||||||
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item">{{ event.name }}</li>
|
<li class="list-group-item">{{ event.name }}</li>
|
||||||
<li class="list-group-item">{% trans "Starts at" %} : {{ event.start_date | date:'H:i d-m-y'}}</li>
|
<li class="list-group-item">{% trans "Starts at" %} : <span style="position:absolute;right: 15px;">{{ event.start_date | date:'H:i d-m-y'}}</span></li>
|
||||||
<li class="list-group-item">{% trans "Ends at" %} : {{ event.end_date | date:'H:i d-m-y'}}</li>
|
<li class="list-group-item">{% trans "Ends at" %} : <span style="position:absolute;right: 15px;">{{ event.end_date | date:'H:i d-m-y'}}</span></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
|
<li class="list-group-item">{% trans "Manage my team" %}</li>
|
||||||
|
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">→{% trans "Join Team" %}</a>
|
||||||
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
|
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
|
||||||
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
|
</ul>
|
||||||
</ul>
|
{% if event.auto_match %}
|
||||||
{% if event.auto_match %}
|
<ul class="list-group">
|
||||||
<ul class="list-group">
|
<li class="list-group-item">{% trans "Auto-matching" %}</li>
|
||||||
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
|
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
|
||||||
{%csrf_token%}
|
{%csrf_token%}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
|
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
|
||||||
</li>
|
</li>
|
||||||
</form>
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -20,14 +20,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-footer">
|
<div class="ctf-footer">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
|
|
||||||
{% if subisover == True %}
|
|
||||||
<span class="message error-msg">{% trans "Subscriptions is over." %}</span>
|
|
||||||
{% endif %}
|
|
||||||
{% if alreadyregistered == True %}
|
|
||||||
<span class="message error-msg">{% trans "You're already registered to this event." %}</span>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if congrat == True %}
|
{% if congrat == True %}
|
||||||
<p>{% trans "Congratulation !" %}</p>
|
<p>{% trans "Congratulation !" %}</p>
|
||||||
{% elif alreadyflag == True %}
|
{% elif alreadyflag == True %}
|
||||||
|
@ -37,7 +29,9 @@
|
||||||
{% elif errorform == True %}
|
{% elif errorform == True %}
|
||||||
<p>{% trans "Error while processing your request. (Invalid Form)" %}</p>
|
<p>{% trans "Error while processing your request. (Invalid Form)" %}</p>
|
||||||
{% elif notsub == True %}
|
{% elif notsub == True %}
|
||||||
<span class="message error-msg">{% trans "Error: you're not registered to this event, so you can't register scores, fucking logic." %}</span>
|
<span class="message error-msg">{% trans "You must register to the event before submitting flags." %}</span>
|
||||||
|
{% elif noteam == True %}
|
||||||
|
<span class="message error-msg">{% trans "This is a team event, please create or join a team before submitting flags." %}</span>
|
||||||
{% if ctf.ctf_url %}
|
{% if ctf.ctf_url %}
|
||||||
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
<a class="begin-ctf-link" target="_blank" href="{{ ctf.ctf_url }}">{% trans "Start the challenge" %}</a></br>
|
||||||
{% elif ctf.file %}
|
{% elif ctf.file %}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12 col-md-9">
|
<div class="col-sm-12 col-md-9">
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
|
<a href="{% url 'events:event_info' event_slug=event.slug %}">< Back to event</a>
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{{ event.name }}</h3>
|
<h3>{{ event.name }}</h3>
|
||||||
<small>{% trans "This event starts at" %} : {{ event.start_date }}</small>
|
<small>{% trans "This event starts at" %} : {{ event.start_date }}</small>
|
||||||
|
@ -11,18 +12,18 @@
|
||||||
|
|
||||||
<div class="ctf-footer">
|
<div class="ctf-footer">
|
||||||
<div class="col-sm-8 col-md-6 mx-auto">
|
<div class="col-sm-8 col-md-6 mx-auto">
|
||||||
{% if logged == True%}
|
{% if logged == True%}
|
||||||
{% if registered == False %}
|
{% if registered == False %}
|
||||||
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
|
<span class="message error-msg">{% trans "You need to be registered to the event." %}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if notexist == True %}
|
{% if notexist == True %}
|
||||||
<span class="message error-msg">{% trans "Team does not exist." %}</span>
|
<span class="message error-msg">{% trans "Team does not exist." %}</span>
|
||||||
{% elif wrongpwd == True %}
|
{% elif wrongpwd == True %}
|
||||||
<span class="message error-msg">{% trans "Wrong password submited." %}</span>
|
<span class="message error-msg">{% trans "Wrong password submited." %}</span>
|
||||||
{% elif max == True %}
|
{% elif max == True %}
|
||||||
<span class="message error-msg">{% trans "Maximum size reached." %}</span>
|
<span class="message error-msg">{% trans "Maximum size reached." %}</span>
|
||||||
{% elif exist == True %}
|
{% elif exist == True %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h2>Join Team</h2>
|
<h2>Join Team</h2>
|
||||||
<form method="post" action="{% url 'events:join_team' event_slug=event.slug %}" class="join-team-form">
|
<form method="post" action="{% url 'events:join_team' event_slug=event.slug %}" class="join-team-form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
@ -31,11 +32,11 @@
|
||||||
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
<input class="form-control" type="password" name="password" placeholder="{% trans "Password" %} *" required="" id="id_password"></br>
|
||||||
<input type="submit" name="" class="form-control" value="{% trans "Join Team" %}">
|
<input type="submit" name="" class="form-control" value="{% trans "Join Team" %}">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<h4>{% trans "You need to be logged to access this event." %}</h4>
|
<h4>{% trans "You need to be logged to access this event." %}</h4>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,24 +44,26 @@
|
||||||
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item">{{ event.name }}</li>
|
<li class="list-group-item">{{ event.name }}</li>
|
||||||
<li class="list-group-item">{% trans "Starts at" %} : {{ event.start_date | date:'H:i d-m-y' }}</li>
|
<li class="list-group-item">{% trans "Starts at" %} : <span style="position:absolute;right: 15px;">{{ event.start_date | date:'H:i d-m-y'}}</span></li>
|
||||||
<li class="list-group-item">{% trans "Ends at" %} : {{ event.end_date | date:'H:i d-m-y' }}</li>
|
<li class="list-group-item">{% trans "Ends at" %} : <span style="position:absolute;right: 15px;">{{ event.end_date | date:'H:i d-m-y'}}</span></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
|
<li class="list-group-item">{% trans "Manage my team" %}</li>
|
||||||
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
|
<a href="{% url 'events:join_team' event_slug=event.slug %}" class="list-group-item">{% trans "Join Team" %}</a>
|
||||||
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
|
<a href="{% url 'events:create_team' event_slug=event.slug %}" class="list-group-item">{% trans "Create Team" %}</a>
|
||||||
</ul>
|
</ul>
|
||||||
{% if event.auto_match %}
|
{% if event.auto_match %}
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
|
<li class="list-group-item">{% trans "Auto-matching" %}</li>
|
||||||
{%csrf_token%}
|
<form method='GET' action="{% url 'events:find_team' event_slug=event.slug %}">
|
||||||
<li class="list-group-item">
|
{%csrf_token%}
|
||||||
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
|
<li class="list-group-item">
|
||||||
</li>
|
<input class="form-control" type="submit" value="{% trans "Find me a team !" %}">
|
||||||
</form>
|
</li>
|
||||||
</ul>
|
</form>
|
||||||
{% endif %}
|
</ul>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -45,14 +45,28 @@
|
||||||
{% for p in members %}
|
{% for p in members %}
|
||||||
<li class="list-group-item"><a class="profile_link" href="{% url 'accounts:profile' user_name=p.user.username %}">{{ p.user.username }}</a></li>
|
<li class="list-group-item"><a class="profile_link" href="{% url 'accounts:profile' user_name=p.user.username %}">{{ p.user.username }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<form method='POST' action="{% url 'events:leave_team' event_slug=player.event.slug %}">
|
</ul>
|
||||||
|
<form method='POST' action="{% url 'events:leave_team' event_slug=player.event.slug %}">
|
||||||
|
{%csrf_token%}
|
||||||
|
<li class="list-group-item">
|
||||||
|
<input class="form-control" type="submit" value="{% trans "Leave Team" %}">
|
||||||
|
</li>
|
||||||
|
</form>
|
||||||
|
{% if player.team.auto == False and player.event.auto_match == True %}
|
||||||
|
<form method='POST' action="{% url 'events:open_team' event_slug=player.event.slug %}">
|
||||||
{%csrf_token%}
|
{%csrf_token%}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<input class="form-control" type="submit" value="{% trans "Leave Team" %}">
|
<input class="form-control" type="submit" value="{% trans "Open to automatching" %}">
|
||||||
</li>
|
</li>
|
||||||
</form>
|
</form>
|
||||||
|
{% elif player.event.auto_match == True %}
|
||||||
</ul>
|
<form method='POST' action="{% url 'events:close_team' event_slug=player.event.slug %}">
|
||||||
|
{%csrf_token%}
|
||||||
|
<li class="list-group-item">
|
||||||
|
<input class="form-control" type="submit" value="{% trans "Close to automatching" %}">
|
||||||
|
</li>
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -17,4 +17,6 @@ urlpatterns = [
|
||||||
path('<str:event_slug>/manage_team', views.manage_team, name='manage_team'),
|
path('<str:event_slug>/manage_team', views.manage_team, name='manage_team'),
|
||||||
path('<str:event_slug>/leave_team', views.leave_team, name='leave_team'),
|
path('<str:event_slug>/leave_team', views.leave_team, name='leave_team'),
|
||||||
path('find_team/<str:event_slug>', views.find_team, name='find_team'),
|
path('find_team/<str:event_slug>', views.find_team, name='find_team'),
|
||||||
|
path('<str:event_slug>/open_team', views.open_team, name='open_team'),
|
||||||
|
path('<str:event_slug>/close_team', views.close_team, name='close_team'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -7,6 +7,7 @@ from ctfs.models import CTF, CTF_flags, Category
|
||||||
from django.utils.translation import get_language
|
from django.utils.translation import get_language
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from math import log
|
||||||
|
|
||||||
def get_description_by_lang(ctf):
|
def get_description_by_lang(ctf):
|
||||||
lang = get_language()
|
lang = get_language()
|
||||||
|
@ -21,6 +22,24 @@ def get_description_by_lang(ctf):
|
||||||
ret = ctf.description_ru
|
ret = ctf.description_ru
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def actualize_points(ctf):
|
||||||
|
solves = CTF_flags.objects.filter(ctf=ctf)
|
||||||
|
nb_solves = len(solves)
|
||||||
|
|
||||||
|
new_points = max(50 - int(log(nb_solves)*2.5)*5, 5)
|
||||||
|
|
||||||
|
if new_points != ctf.points:
|
||||||
|
diff = ctf.points - new_points
|
||||||
|
ctf.points = new_points
|
||||||
|
ctf.save()
|
||||||
|
for s in solves:
|
||||||
|
player = EventPlayer.objects.get(event=ctf.event, user=s.user)
|
||||||
|
player.score -= diff
|
||||||
|
player.save()
|
||||||
|
if player.team:
|
||||||
|
player.team.score -= diff
|
||||||
|
player.team.save()
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def events(request):
|
def events(request):
|
||||||
list_events = Event.objects.filter().order_by('-end_date', 'start_date')
|
list_events = Event.objects.filter().order_by('-end_date', 'start_date')
|
||||||
|
@ -29,6 +48,7 @@ def events(request):
|
||||||
def chall_event_info(request, event_slug, chall_slug):
|
def chall_event_info(request, event_slug, chall_slug):
|
||||||
event_info = get_object_or_404(Event, slug=event_slug)
|
event_info = get_object_or_404(Event, slug=event_slug)
|
||||||
ctf_info = get_object_or_404(CTF, event__slug=event_info.slug, slug=chall_slug)
|
ctf_info = get_object_or_404(CTF, event__slug=event_info.slug, slug=chall_slug)
|
||||||
|
|
||||||
if timezone.now() < ctf_info.pub_date:
|
if timezone.now() < ctf_info.pub_date:
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
eventisover = False
|
eventisover = False
|
||||||
|
@ -37,6 +57,7 @@ def chall_event_info(request, event_slug, chall_slug):
|
||||||
wrongflag = False
|
wrongflag = False
|
||||||
errorform = False
|
errorform = False
|
||||||
notsub = False
|
notsub = False
|
||||||
|
noteam = False
|
||||||
player = None
|
player = None
|
||||||
if request.user.is_authenticated and not request.user.is_staff:
|
if request.user.is_authenticated and not request.user.is_staff:
|
||||||
player = EventPlayer.objects.filter(event=event_info, user=request.user)
|
player = EventPlayer.objects.filter(event=event_info, user=request.user)
|
||||||
|
@ -44,7 +65,7 @@ def chall_event_info(request, event_slug, chall_slug):
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
elif not request.user.is_authenticated:
|
elif not request.user.is_authenticated:
|
||||||
return redirect('accounts:signin')
|
return redirect('accounts:signin')
|
||||||
if request.GET.get('EventIsOver'):
|
if request.GET.get('EventIsOver') or timezone.now() > event_info.end_date:
|
||||||
eventisover = True
|
eventisover = True
|
||||||
if request.GET.get('AlreadyFlagged'):
|
if request.GET.get('AlreadyFlagged'):
|
||||||
alreadyflag = True
|
alreadyflag = True
|
||||||
|
@ -56,6 +77,8 @@ def chall_event_info(request, event_slug, chall_slug):
|
||||||
errorform = True
|
errorform = True
|
||||||
if request.GET.get('NotRegistered'):
|
if request.GET.get('NotRegistered'):
|
||||||
notsub = True
|
notsub = True
|
||||||
|
if request.GET.get('NoTeam'):
|
||||||
|
noteam = True
|
||||||
solved_challs = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
|
solved_challs = CTF_flags.objects.filter(ctf=ctf_info).order_by('flag_date')
|
||||||
solved_list = []
|
solved_list = []
|
||||||
for s in solved_challs:
|
for s in solved_challs:
|
||||||
|
@ -65,7 +88,7 @@ def chall_event_info(request, event_slug, chall_slug):
|
||||||
solved_list.append([s.user, s.flag_date])
|
solved_list.append([s.user, s.flag_date])
|
||||||
description = get_description_by_lang(ctf_info)
|
description = get_description_by_lang(ctf_info)
|
||||||
return render(request, 'events/ctf_info.html', { 'ctf' : ctf_info, 'event':event_info, 'solved_list': solved_list, 'description': description, 'eventisover': eventisover, 'alreadyflag': alreadyflag,
|
return render(request, 'events/ctf_info.html', { 'ctf' : ctf_info, 'event':event_info, 'solved_list': solved_list, 'description': description, 'eventisover': eventisover, 'alreadyflag': alreadyflag,
|
||||||
'congrat': congrat, 'wrongflag': wrongflag, 'errorform': errorform, 'notsub': notsub})
|
'congrat': congrat, 'wrongflag': wrongflag, 'errorform': errorform, 'notsub': notsub, 'noteam':noteam})
|
||||||
|
|
||||||
def event(request, event_slug):
|
def event(request, event_slug):
|
||||||
event_info = get_object_or_404(Event, slug=event_slug)
|
event_info = get_object_or_404(Event, slug=event_slug)
|
||||||
|
@ -86,15 +109,11 @@ def event(request, event_slug):
|
||||||
player = None
|
player = None
|
||||||
if player:
|
if player:
|
||||||
IsRegistered = True
|
IsRegistered = True
|
||||||
if not player.team and event_info.team_size > 1:
|
|
||||||
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
|
||||||
if event_info.password:
|
if event_info.password:
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
if request.user.is_staff is False:
|
if request.user.is_staff is False:
|
||||||
if not player:
|
if not player:
|
||||||
return render(request, 'events/event_pwd.html', {'event' : event_info, 'logged': True, 'wrongpwd': wrongpwd, 'alreadyregistered': alreadyregistered})
|
return render(request, 'events/event_pwd.html', {'event' : event_info, 'logged': True, 'wrongpwd': wrongpwd, 'alreadyregistered': alreadyregistered})
|
||||||
elif not player.team and event_info.team_size > 1:
|
|
||||||
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
|
||||||
else:
|
else:
|
||||||
return render(request, 'events/event_pwd.html', {'event' : event_info, 'logged': False, 'wrongpwd': wrongpwd, 'alreadyregistered': alreadyregistered})
|
return render(request, 'events/event_pwd.html', {'event' : event_info, 'logged': False, 'wrongpwd': wrongpwd, 'alreadyregistered': alreadyregistered})
|
||||||
ended = False
|
ended = False
|
||||||
|
@ -103,7 +122,7 @@ def event(request, event_slug):
|
||||||
begun = False
|
begun = False
|
||||||
if timezone.now() >= event_info.start_date:
|
if timezone.now() >= event_info.start_date:
|
||||||
begun = True
|
begun = True
|
||||||
challenges = CTF.objects.filter(event=event_info).order_by('category', 'points')
|
challenges = CTF.objects.filter(event=event_info, pub_date__lte=timezone.now()).order_by('category', 'points')
|
||||||
if event_info.team_size == 1:
|
if event_info.team_size == 1:
|
||||||
solved_list = EventPlayer.objects.filter(event=event_info).order_by('-score', 'last_submission_date', 'user__username')
|
solved_list = EventPlayer.objects.filter(event=event_info).order_by('-score', 'last_submission_date', 'user__username')
|
||||||
else:
|
else:
|
||||||
|
@ -115,6 +134,7 @@ def event(request, event_slug):
|
||||||
def submit_event_flag(request, event_slug, chall_slug):
|
def submit_event_flag(request, event_slug, chall_slug):
|
||||||
ev = get_object_or_404(Event, slug=event_slug)
|
ev = get_object_or_404(Event, slug=event_slug)
|
||||||
response = redirect('events:event_chall_info', event_slug=event_slug, chall_slug=chall_slug)
|
response = redirect('events:event_chall_info', event_slug=event_slug, chall_slug=chall_slug)
|
||||||
|
flagged = False
|
||||||
|
|
||||||
if timezone.now() >= ev.end_date:
|
if timezone.now() >= ev.end_date:
|
||||||
response['Location'] += '?EventIsOver=1'
|
response['Location'] += '?EventIsOver=1'
|
||||||
|
@ -126,10 +146,15 @@ def submit_event_flag(request, event_slug, chall_slug):
|
||||||
response['Location'] += '?ChallengeNotFound=1'
|
response['Location'] += '?ChallengeNotFound=1'
|
||||||
return response
|
return response
|
||||||
|
|
||||||
flagged = False
|
try:
|
||||||
player = EventPlayer.objects.get(user=request.user, event=ev)
|
player = EventPlayer.objects.get(event=ev, user=request.user)
|
||||||
|
except:
|
||||||
|
player = None
|
||||||
|
|
||||||
if player:
|
if player:
|
||||||
|
if ev.team_size > 1 and player.team is None:
|
||||||
|
response['Location'] += '?NoTeam=1'
|
||||||
|
return response
|
||||||
if ev.team_size == 1 and CTF_flags.objects.filter(user=request.user, ctf=ctf_info):
|
if ev.team_size == 1 and CTF_flags.objects.filter(user=request.user, ctf=ctf_info):
|
||||||
flagged = True
|
flagged = True
|
||||||
else:
|
else:
|
||||||
|
@ -157,6 +182,8 @@ def submit_event_flag(request, event_slug, chall_slug):
|
||||||
player.team.last_submission_date = timezone.now()
|
player.team.last_submission_date = timezone.now()
|
||||||
player.team.score += ctf_info.points
|
player.team.score += ctf_info.points
|
||||||
player.team.save()
|
player.team.save()
|
||||||
|
if ev.dynamic:
|
||||||
|
actualize_points(ctf_info)
|
||||||
response['Location'] += '?Congrat=1'
|
response['Location'] += '?Congrat=1'
|
||||||
return response
|
return response
|
||||||
else:
|
else:
|
||||||
|
@ -191,8 +218,6 @@ def submit_pwd(request, event_slug):
|
||||||
else:
|
else:
|
||||||
new = EventPlayer(user=request.user, event=ev)
|
new = EventPlayer(user=request.user, event=ev)
|
||||||
new.save()
|
new.save()
|
||||||
if event_info.team_size > 1:
|
|
||||||
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
|
|
||||||
|
|
||||||
|
@ -214,8 +239,6 @@ def register_to_event(request, event_slug):
|
||||||
else:
|
else:
|
||||||
new = EventPlayer(user=request.user, event=ev, score=0)
|
new = EventPlayer(user=request.user, event=ev, score=0)
|
||||||
new.save()
|
new.save()
|
||||||
if ev.team_size > 1:
|
|
||||||
return render(request, 'events/create_team.html', {'event' : ev, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|
|
@ -11,7 +11,6 @@ from random import randint
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def create_team(request, event_slug):
|
def create_team(request, event_slug):
|
||||||
response = redirect('events:create_team', event_slug=event_slug)
|
|
||||||
ev = get_object_or_404(Event, slug=event_slug)
|
ev = get_object_or_404(Event, slug=event_slug)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
if request.user.is_authenticated and ev.team_size > 1:
|
if request.user.is_authenticated and ev.team_size > 1:
|
||||||
|
@ -22,11 +21,12 @@ def create_team(request, event_slug):
|
||||||
player = EventPlayer.objects.get(user=request.user, event=ev)
|
player = EventPlayer.objects.get(user=request.user, event=ev)
|
||||||
player.team = new
|
player.team = new
|
||||||
player.save()
|
player.save()
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
|
else:
|
||||||
|
return render(request, 'events/create_team.html', {'event' : ev, 'logged': True, 'wrongpwd': False, 'registered' : True, 'exist' : False})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def join_team(request, event_slug):
|
def join_team(request, event_slug):
|
||||||
response = redirect('events:join_team', event_slug=event_slug)
|
|
||||||
ev = get_object_or_404(Event, slug=event_slug)
|
ev = get_object_or_404(Event, slug=event_slug)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
if request.user.is_authenticated and ev.team_size > 1:
|
if request.user.is_authenticated and ev.team_size > 1:
|
||||||
|
@ -46,9 +46,9 @@ def join_team(request, event_slug):
|
||||||
player = EventPlayer.objects.get(user=request.user, event=ev)
|
player = EventPlayer.objects.get(user=request.user, event=ev)
|
||||||
player.team = team
|
player.team = team
|
||||||
player.save()
|
player.save()
|
||||||
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
else:
|
else:
|
||||||
return render(request, 'events/join_team.html', {'event' : ev, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
return render(request, 'events/join_team.html', {'event' : ev, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def team_info(request, name, event_slug):
|
def team_info(request, name, event_slug):
|
||||||
|
@ -102,6 +102,8 @@ def team_info(request, name, event_slug):
|
||||||
def manage_team(request, event_slug):
|
def manage_team(request, event_slug):
|
||||||
event_info = get_object_or_404(Event, slug=event_slug)
|
event_info = get_object_or_404(Event, slug=event_slug)
|
||||||
player = EventPlayer.objects.get(user=request.user, event=event_info)
|
player = EventPlayer.objects.get(user=request.user, event=event_info)
|
||||||
|
if not player.team:
|
||||||
|
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
||||||
members = EventPlayer.objects.filter(team=player.team, event=event_info)
|
members = EventPlayer.objects.filter(team=player.team, event=event_info)
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
@ -147,7 +149,7 @@ def leave_team(request, event_slug):
|
||||||
if members.count() == 0:
|
if members.count() == 0:
|
||||||
team.delete()
|
team.delete()
|
||||||
|
|
||||||
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def find_team(request, event_slug):
|
def find_team(request, event_slug):
|
||||||
|
@ -174,3 +176,27 @@ def find_team(request, event_slug):
|
||||||
player.save()
|
player.save()
|
||||||
|
|
||||||
return redirect('events:event_info', event_slug=event_slug)
|
return redirect('events:event_info', event_slug=event_slug)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def open_team(request, event_slug):
|
||||||
|
event_info = get_object_or_404(Event, slug=event_slug)
|
||||||
|
player = EventPlayer.objects.get(user=request.user, event=event_info)
|
||||||
|
|
||||||
|
if not player.team:
|
||||||
|
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
||||||
|
|
||||||
|
player.team.auto = True
|
||||||
|
player.team.save()
|
||||||
|
return redirect('events:manage_team', event_slug=event_slug)
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def close_team(request, event_slug):
|
||||||
|
event_info = get_object_or_404(Event, slug=event_slug)
|
||||||
|
player = EventPlayer.objects.get(user=request.user, event=event_info)
|
||||||
|
|
||||||
|
if not player.team:
|
||||||
|
return render(request, 'events/create_team.html', {'event' : event_info, 'logged': True, 'wrongpwd': False, 'registered' : True, 'notexist' : False})
|
||||||
|
|
||||||
|
player.team.auto = False
|
||||||
|
player.team.save()
|
||||||
|
return redirect('events:manage_team', event_slug=event_slug)
|
|
@ -3,6 +3,7 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
{% load is_member %}
|
{% load is_member %}
|
||||||
|
{% load get_news %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 col-sm-12 right-sidebar middle-sm">
|
<div class="col-lg-3 col-sm-12 right-sidebar middle-sm">
|
||||||
|
|
||||||
|
@ -34,17 +35,8 @@
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">{{ n.name|safe }}</h5>
|
<h5 class="card-title">{{ n.name|safe }}</h5>
|
||||||
<p class="card-text">
|
<p class="card-text">
|
||||||
{% if lang == "fr" and n.content %}
|
{% get_news_by_lang n lang as content %}
|
||||||
{{ n.content|safe }}
|
{{ content | safe }}
|
||||||
{% elif lang == "en" and n.content_en %}
|
|
||||||
{{ n.content_en|safe }}
|
|
||||||
{% elif lang == "de" and n.content_de %}
|
|
||||||
{{ n.content_de|safe }}
|
|
||||||
{% elif lang == "ru" and n.content_ru %}
|
|
||||||
{{ n.content_ru|safe }}
|
|
||||||
{% else %}
|
|
||||||
{% trans "No translation available. Please try another language (English or French)." %}
|
|
||||||
{% endif %}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer text-muted">
|
<div class="card-footer text-muted">
|
||||||
|
@ -83,13 +75,13 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="row flex-nowrap">
|
<div class="row flex-nowrap">
|
||||||
<div class="col-lg-6 col-sm-3">
|
<div class="col-lg-6 col-md-6">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item active">{% trans "Flags" %}</li>
|
<li class="list-group-item active">{% trans "Flags" %}</li>
|
||||||
<li class="list-group-item"><span>{{ flags }}</span></li>
|
<li class="list-group-item"><span>{{ flags }}</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 col-sm-3">
|
<div class="col-lg-6 col-md-6">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item active">{% trans "Users" %}</li>
|
<li class="list-group-item active">{% trans "Users" %}</li>
|
||||||
<li class="list-group-item"><span>{{ nb_users }}</span></li>
|
<li class="list-group-item"><span>{{ nb_users }}</span></li>
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
Wie Sie es vielleicht schon wissen, braucht man um CTF Herausforderungen zu lösen viele Werkzeuge und es ist manchmal schwierig zu wissen welche benötigt werden.</br>
|
||||||
|
Wir haben eine VM erstellt, mit vorinstallierten Werkzeugen, damit Sie sich auf das wesentliche konzentrieren können: Flaggen!</br>
|
||||||
|
Alles was Sie tun müssen ist diese <b><a href="/media/xubuntu-42ctf.ova">OVA</a></b> herunterzuladen und auf <b><a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a></b> zu importieren.<br>
|
||||||
|
Also, worauf warten Sie?
|
|
@ -0,0 +1,7 @@
|
||||||
|
Haben Sie eine Änderung am Punktestand bemerkt?<br><br>
|
||||||
|
|
||||||
|
Keine Panik, alle Ihre Flaggen sind in Sicherheit. Wir haben bloß zu dynamischen Belohnungen gewächselt. Das heißt, dass die Punktzahl der Herausforderungen nicht mehr festgelegt ist: sie sinken nun jedes Mal, dass die Herausforderung gelöst wird.
|
||||||
|
|
||||||
|
Belohnungspunkte beginnen bei 200 und können nicht unter 5 fallen.<br><br>
|
||||||
|
|
||||||
|
Wir erhoffen, dass dadurch die echte Schwierigkeit der Herausforderungen besser gespiegelt werden kann. Zeitgebundene Ereignisse sind von dieser Änderung nicht beinträchtigt.
|
|
@ -0,0 +1,9 @@
|
||||||
|
Suchen Sie Ihren Seelenverwandten, einen neuen Freund oder bloß einen dezenten CTF-Partner?<br><br>
|
||||||
|
|
||||||
|
Wir bei 42CTF haben was Sie brauchen: den <a href="/events/speed_dating_2022">Speed Dating CTF</a>!<br><br>
|
||||||
|
|
||||||
|
Kommen Sie alleine oder gut begleitet zu diesem sehr kurzen Wettbewerb, der nur 4 Studen dauern wird.<br>
|
||||||
|
Für dieses Team-CTF können Sie nur auf einen anderen Spieler zählen.<br>
|
||||||
|
Sie können entweder Ihren Partner aussuchen oder das Schicksal für sie entscheiden lassen.<br><br>
|
||||||
|
|
||||||
|
Viel Glück!
|
|
@ -0,0 +1,8 @@
|
||||||
|
Schon immer lust gehabt etwas über SQL-Einbrüche zu lernen?<br>
|
||||||
|
<br>
|
||||||
|
Wir bieten Ihnen drei brandneue Herausvorderungen erstellt von <b><a class=profile_link href=https://www.42ctf.org/accounts/profile/aldubar>aldubar</a></b>:<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_1'>Simple Question of Logic 1</a></b> (10 Punkte)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_2'>Simple Question of Logic 2</a></b> (30 Punkte)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_3'>Simple Question of Logic 3</a></b> (40 Punkte)<br>
|
||||||
|
<br>
|
||||||
|
Vergessen Sie nicht, dass Sie uns jederzeit auf <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> erreichen können, um uns neue Herausforderungen vorzuschalgen!
|
|
@ -0,0 +1,9 @@
|
||||||
|
Neues zeitgebundenes Ereignis: <b>Welcome CTF 2021</b>!<br><br>
|
||||||
|
|
||||||
|
Datum: vom 10.12.2021 20 Uhr biz zum 12.12.2021 20 Uhr (Pariser Zeit).<br>
|
||||||
|
Es ist ein CTF um die Studenten die neulich 42 beigetreten haben zu begrüßen.<br>
|
||||||
|
Es wird nur für die Personen die ihren Kursus <b>nach</b> dem 01.09.2021 begonnen haben zugänglich sein.<br><br>
|
||||||
|
|
||||||
|
Ansonsten können Sie trotzdem die auf der Webseite bereits verfügbaren Herausforderungen lösen und versuchen das Top 10 zu erreichen!<br><br>
|
||||||
|
|
||||||
|
Registrieren Sie sich <a href=https://forms.42l.fr/apps/forms/SooTbnT4PCs9na7C>hier</a>.
|
|
@ -0,0 +1,4 @@
|
||||||
|
As you may already be aware, solving CTF challenges require a lot of tools and it may be difficult to find out which ones you need to install. </br>
|
||||||
|
We've made a VM with everything you need for 42CTF challenges so that you can focus on what is really important: flag ! </br>
|
||||||
|
All you need to do is download this <b><a href="/media/xubuntu-42ctf.ova">OVA</a></b> and import it in <b><a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a>.<br></b>
|
||||||
|
So, what are you waiting for ?
|
|
@ -0,0 +1,7 @@
|
||||||
|
You noticed a little change in the 42CTF scoreboard ?<br><br>
|
||||||
|
|
||||||
|
Don't panic, all your flags are safe and sound. We just switched to dynamic scoring. It means that challenges points are not fixed anymore: they will now decrease with each solve.<br>
|
||||||
|
|
||||||
|
Challenges points start at 200, and cannot go below than 5.<br><br>
|
||||||
|
|
||||||
|
We hope that this will allow better reflecting of the actual difficulty of the challenges. Limited-time events are not affected by this change.
|
|
@ -0,0 +1,3 @@
|
||||||
|
We're pleased to announce that 42CTF source code is now available on a self-hosted gitea <a class="footer_imgs" href="https://gitea.42ctf.org" target="_blank"><img src="/static/img/gitea_logo.png" width="30"></a><br><br>
|
||||||
|
|
||||||
|
If you want to contribute to the platform (development or translation), you can send us a message on <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> or simply fill this <a href="https://forms.42l.fr/apps/forms/bpmyGR37AR4yHGnC">form</a> and we'll contact you !
|
|
@ -0,0 +1,9 @@
|
||||||
|
Looking for your soul mate, a new friend, or just a decent CTF companion ?<br><br>
|
||||||
|
|
||||||
|
We at 42CTF have what you need: the <a href="/events/speed_dating_2022">Speed Dating CTF</a> !<br><br>
|
||||||
|
|
||||||
|
Come alone or in good company for this very short competition, which will last only 4 hours.<br>
|
||||||
|
You will be able to count on only one other player for this team CTF.<br>
|
||||||
|
You can either choose your partner or you can let the fate decide for you.<br><br>
|
||||||
|
|
||||||
|
Good luck !
|
|
@ -0,0 +1,8 @@
|
||||||
|
Always wanted to learn about SQL injections ? <br>
|
||||||
|
<br>
|
||||||
|
We offer you three brand new challenges created by <b><a class=profile_link href=https://www.42ctf.org/accounts/profile/aldubar>aldubar</a></b>:<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_1'>Simple Question of Logic 1</a></b> (10 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_2'>Simple Question of Logic 2</a></b> (30 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_3'>Simple Question of Logic 3</a></b> (40 points)<br>
|
||||||
|
<br>
|
||||||
|
Don't forget that you can always reach out on <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> to propose new challenges !
|
|
@ -0,0 +1,9 @@
|
||||||
|
New limited-time event : <b>Welcome CTF 2021</b> !<br><br>
|
||||||
|
|
||||||
|
Dates: from 10/12/2021 8pm to 12/12/2021 8pm (Paris time).<br>
|
||||||
|
This is a CTF to welcome the new students who join us at 42.<br>
|
||||||
|
It will be accessible only for the persons who started their cursus <b>after</b> the 01/09/2021.<br><br>
|
||||||
|
|
||||||
|
For the others, you can still solve the challenges already available on the website and try to reach the top 10 ! <br><br>
|
||||||
|
|
||||||
|
Registration <a href=https://forms.42l.fr/apps/forms/SooTbnT4PCs9na7C>here</a>
|
|
@ -0,0 +1,4 @@
|
||||||
|
Como ya sabrás, resolver retos CTF requiere un montón de herramientas y puede ser dificil encontrar cuales tienes que instalar. </br>
|
||||||
|
Hemos hecho una máquina virtual con todo lo que necesitas para resolver para resolver retos de 42CTF, para que te puedas concentrar en lo importante: Flags! </br>
|
||||||
|
Todo lo que necesitas es descargar esto <b><a href="/media/xubuntu-42ctf.ova">OVA</a></b> e importarlo en <b><a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a>.<br></b>
|
||||||
|
¿A qué estás esperando?
|
|
@ -0,0 +1,7 @@
|
||||||
|
¿ Has notado un pequeño cambio en la Tabla de Puntos de 42CTF ?<br><br>
|
||||||
|
|
||||||
|
No entres en pánico, todas tus flags estan a salvo. Solo hemos cambiado a puntuación dinámica. Esto significa que los puntos de retos no son fijos: irán disminuyendo cada vez que son resueltos.<br>
|
||||||
|
|
||||||
|
Los puntos de retos empiezan en 200, y no pueden valer menos de 5 puntos. <br><br>
|
||||||
|
|
||||||
|
Esperamos que esto ayude a reflejar la dificultad del reto. Eventos de tiempo limitado nos e ven afectados por este cambio.
|
|
@ -0,0 +1,9 @@
|
||||||
|
¿ Estás buscando tu alma gemela ? ¿ Un nuevo amigo ? ¿ O simplemente un buen compañero de CTF ?<br><br>
|
||||||
|
|
||||||
|
Aquí en 42CTF tenemos lo que necesitas: el <a href="/events/speed_dating_2022">Speed Dating CTF</a> !<br><br>
|
||||||
|
|
||||||
|
Ven solo o en compañía a esta competición cortita, que solo durará 4 horas.<br>
|
||||||
|
Podrás contar con un solo compañero para este CTF por equipos.<br>
|
||||||
|
Puedes o elegir un compañero o dejar a la fortuna que elija por ti.<br><br>
|
||||||
|
|
||||||
|
¡ Buena suerte !
|
|
@ -0,0 +1,8 @@
|
||||||
|
¿ Siempre has querido aprender sobre SQL injection ? <br>
|
||||||
|
<br>
|
||||||
|
Te ofrecemos tres nuevos retos creados por <b><a class=profile_link href=https://www.42ctf.org/accounts/profile/aldubar>aldubar</a></b>:<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_1'>Cuestión de lógica simple 1</a></b> (10 puntos)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_2'>Cuestión de lógica simple 2</a></b> (30 puntos)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_3'>Cuestión de lógica simple 3</a></b> (40 puntos)<br>
|
||||||
|
<br>
|
||||||
|
No te olvides que siempre puedes contactarnos en <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> para proponer nuevos retos !
|
|
@ -0,0 +1,9 @@
|
||||||
|
Nuevo evento de tiempo limitado: <b>Bienvenida a CTF 2021</b> !<br><br>
|
||||||
|
|
||||||
|
Fechas: desde 10/12/2021 8pm a 12/12/2021 8pm (Hora parís).<br>
|
||||||
|
Este CTF es una bienvenida para los nuevos estudiantes que se unan a 42.<br>
|
||||||
|
Solo estará disponible para las personas que empezaron su cursus <b>después</b> de 01/09/2021.<br><br>
|
||||||
|
|
||||||
|
Para otros, puedes resolver otros retos ya disponibles e intentar llegar al top 10! <br><br>
|
||||||
|
|
||||||
|
Registro: <a href=https://forms.42l.fr/apps/forms/SooTbnT4PCs9na7C>aquí</a>
|
|
@ -0,0 +1,7 @@
|
||||||
|
Comme vous le savez surement déjà, résoudre des challenges nécessite beaucoup d'outils et il peut être difficile de savoir lesquels sont vraiment nécessaires. <br>
|
||||||
|
|
||||||
|
Nous avons créé une VM avec tout ce dont vous avez besoin pour 42CTF afin que vous vous concentriez sur ce qui compte vraiment : flag ! <br>
|
||||||
|
|
||||||
|
Tout ce dont vous avez besoin est de télécharger cet <b><a href="/media/xubuntu-42ctf.ova">OVA</a></b> et de l'importer dans <b><a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a></b>.<br>
|
||||||
|
|
||||||
|
Alors, qu'est ce que vous attendez ?
|
|
@ -0,0 +1,7 @@
|
||||||
|
Vous avez remarqué un petit changement sur le scoreboard de 42CTF ?<br><br>
|
||||||
|
|
||||||
|
Pas de panique, tous vos flags sont sains et saufs. Nous avons juste basculé sur du scoring dynamique. Cela signifie que les points des challenges ne sont plus fixes : ils diminueront désormais à chaque nouvelle résolution.<br>
|
||||||
|
|
||||||
|
Un challenge démarre à 200 points, et ne peut pas descendre en dessous de 5 points.<br><br>
|
||||||
|
|
||||||
|
Nous espérons que cela permettra de mieux refléter la véritable difficulté des challenges. Les événements à durée limitée ne sont pas concernés par ce changement.
|
|
@ -0,0 +1,3 @@
|
||||||
|
Nous sommes heureux de vous annoncer que le code source de 42CTF est désormais disponible sur un <a class="footer_imgs" href="https://gitea.42ctf.org" target="_blank"><img src="/static/img/gitea_logo.png" width="30"></a> auto-hébergé.<br><br>
|
||||||
|
|
||||||
|
Si vous voulez contribuer a la plateforme (développement ou traduction), vous pouvez nous envoyer un message sur <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> ou simplement remplir ce <a href="https://forms.42l.fr/apps/forms/bpmyGR37AR4yHGnC">formulaire</a> et nous vous contacterons !
|
|
@ -0,0 +1,9 @@
|
||||||
|
À la recherche de l'âme soeur, d'un nouvel ami, ou juste d'un compagnon de CTF ?<br><br>
|
||||||
|
|
||||||
|
Nous avons ce dont vous avez besoin : le <a href="/events/speed_dating_2022">Speed Dating CTF</a> !<br><br>
|
||||||
|
|
||||||
|
Venez seul ou bien accompagné pour cette très courte compétition, qui ne durera que 4 heures.<br>
|
||||||
|
Vous ne pourrez compter que sur une seule autre personne pour ce CTF en équipe.<br>
|
||||||
|
Vous pouvez soit choisir votre partenaire, soit laisser laisser le destin décider pour vous.<br><br>
|
||||||
|
|
||||||
|
Bonne chance !
|
|
@ -0,0 +1,8 @@
|
||||||
|
Vous avez toujours voulu en apprendre plus sur les injections SQL ? <br>
|
||||||
|
<br>
|
||||||
|
On vous propose trois nouveaux challenges créés par <b><a class=profile_link href=https://www.42ctf.org/accounts/profile/aldubar>aldubar</a></b>:<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_1'>Simple Question of Logic 1</a></b> (10 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_2'>Simple Question of Logic 2</a></b> (30 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_3'>Simple Question of Logic 3</a></b> (40 points)<br>
|
||||||
|
<br>
|
||||||
|
N'oubliez pas que vous pouvez toujours nous contacter sur <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> pour proposer des nouveaux challenges !
|
|
@ -0,0 +1,9 @@
|
||||||
|
Nouvel évènement en temps limité : <b>Welcome CTF 2021</b> !<br><br>
|
||||||
|
|
||||||
|
Dates : du 10/12/2021 20h au 12/12/2021 20h. <br>
|
||||||
|
Il s'agit d'un CTF pour souhaiter la bienvenue aux nouveaux étudiants qui nous rejoignent à 42.<br>
|
||||||
|
Il ne sera donc accessible qu'aux personnes ayant effectué leur rentrée <b>après</b> le 01/09/2021.<br><br>
|
||||||
|
|
||||||
|
Pour les autres, vous pouvez toujours résoudre les challenges déjà disponibles sur le site et tenter de vous hisser dans le top 10 ! <br><br>
|
||||||
|
|
||||||
|
Inscriptions <a href=https://forms.42l.fr/apps/forms/SooTbnT4PCs9na7C>ici</a>
|
|
@ -0,0 +1,4 @@
|
||||||
|
すでにお気づきかもしれませんが、CTFの課題を解くには多くのツールが必要で、どれをインストールすれば良いのかがわかりにくいかもしれません。</br>
|
||||||
|
私たちは、あなたが本当に重要なことに集中できるように、42CTFの課題に必要な全てのツールを備えたVMを作成しました。重要なのはフラグです!</br>
|
||||||
|
この<b><a href="/media/xubuntu-42ctf.ova">OVA</a></b>をダウンロードし、<b><a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a></b>にインポートするだけです。<br>
|
||||||
|
さて、何をためらっているのですか?
|
|
@ -0,0 +1,7 @@
|
||||||
|
42CTFのスコアボードにちょっとした変化があったことにお気づきですか?<br><br>
|
||||||
|
|
||||||
|
慌てないでください、 あなたのフラグはすべて無事です。 動的スコアリングに切り替えただけです。 それはチャレンジポイントがもう固定ではないことを意味します。解決するたびに減少します。<br>
|
||||||
|
|
||||||
|
チャレンジポイントは200から始まり、5より低くなることはありません。<br><br>
|
||||||
|
|
||||||
|
これにより、課題の実際の難易度をより良く反映できるようになると期待しています。期間限定イベントは、この変更の影響は受けません。
|
|
@ -0,0 +1,3 @@
|
||||||
|
42CTFのソースコードがセルフホストのgitea <a class="footer_imgs" href="https://gitea.42ctf.org" target="_blank"><img src="/static/img/gitea_logo.png" width="30"></a> で公開されたことをお知らせします。<br><br>
|
||||||
|
|
||||||
|
プラットフォームへの貢献(開発や翻訳)をしていただける方は、 <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> にメッセージをお送りいただくか、こちらの <a href="https://forms.42l.fr/apps/forms/bpmyGR37AR4yHGnC">フォーム</a> にご記入いただければご連絡いたします!
|
|
@ -0,0 +1,9 @@
|
||||||
|
ソウルメイト、新しい友達、またはちょうど良いCTFの仲間を探していますか?<br><br>
|
||||||
|
|
||||||
|
私たち42CTFは、あなたが求めているものを持っています。それは<a href="/events/speed_dating_2022">Speed Dating CTF</a>です!<br><br>
|
||||||
|
|
||||||
|
4時間という短い時間ですが、お一人でも、お仲間とご一緒でも、ぜひご参加ください。<br>
|
||||||
|
このチーム戦CTFでは、自分以外の一人のプレーヤーのみ頼ることができます。<br>
|
||||||
|
相手を選ぶもよし、運命に身を任せるもよし。<br><br>
|
||||||
|
|
||||||
|
幸運を祈ります!
|
|
@ -0,0 +1,8 @@
|
||||||
|
SQLインジェクションについて学びたいと思ったことはありませんか?<br>
|
||||||
|
<br>
|
||||||
|
<b><a class=profile_link href=https://www.42ctf.org/accounts/profile/aldubar>aldubar</a></b>が作成した全く新しい3つの課題を提供します。<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_1'>Simple Question of Logic 1</a></b> (10 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_2'>Simple Question of Logic 2</a></b> (30 points)<br>
|
||||||
|
- <b><a href='https://www.42ctf.org/ctfs/web/simple_question_3'>Simple Question of Logic 3</a></b> (40 points)<br>
|
||||||
|
<br>
|
||||||
|
新しい課題を提案するために、<a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a>へいつでも連絡できることを忘れないでください!
|
|
@ -0,0 +1,9 @@
|
||||||
|
期間限定の新イベント:<b>Welcome CTF 2021</b>!<br><br>
|
||||||
|
|
||||||
|
日程:2021年12月10日20時~2021年12月12日20時(パリ時間)<br>
|
||||||
|
42に入学する新入生を歓迎するためのCTFです。<br>
|
||||||
|
2021年9月1日<b>以降</b>にカーサスを開始した方のみアクセス可能です。<br><br>
|
||||||
|
|
||||||
|
それ以外の方は、ウェブサイト上で公開されている課題を解いて、トップ10入りを目指してください!<br><br>
|
||||||
|
|
||||||
|
登録は<a href=https://forms.42l.fr/apps/forms/SooTbnT4PCs9na7C>こちら</a>
|
|
@ -0,0 +1,13 @@
|
||||||
|
from django import template
|
||||||
|
from django.core.files.storage import default_storage
|
||||||
|
|
||||||
|
register = template.Library()
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def get_news_by_lang(news, lang):
|
||||||
|
filepath = "home/templates/news/"+ lang + "/" + news.slug + ".html"
|
||||||
|
try:
|
||||||
|
with open(filepath) as fp:
|
||||||
|
return fp.read()
|
||||||
|
except:
|
||||||
|
return news.content_en
|
|
@ -8,26 +8,14 @@ from django.urls import translate_url
|
||||||
from django.utils.translation import (
|
from django.utils.translation import (
|
||||||
LANGUAGE_SESSION_KEY, check_for_language, get_language,
|
LANGUAGE_SESSION_KEY, check_for_language, get_language,
|
||||||
)
|
)
|
||||||
|
from django.core.files.storage import default_storage
|
||||||
import datetime
|
import datetime
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
import operator
|
import operator
|
||||||
|
|
||||||
def get_content_by_lang(news):
|
|
||||||
lang = get_language()
|
|
||||||
ret = None
|
|
||||||
if lang == "fr":
|
|
||||||
ret = news.content
|
|
||||||
elif lang == "en":
|
|
||||||
ret = news.content_en
|
|
||||||
elif lang == "de":
|
|
||||||
ret = news.content_de
|
|
||||||
elif lang == "ru":
|
|
||||||
ret = news.content_ru
|
|
||||||
return ret
|
|
||||||
|
|
||||||
def get_weekly_top():
|
def get_weekly_top():
|
||||||
week_ago = datetime.datetime.now() - datetime.timedelta(days=7)
|
week_ago = datetime.datetime.now() - datetime.timedelta(days=7)
|
||||||
weekly_flags = CTF_flags.objects.filter(flag_date__gt=week_ago)
|
weekly_flags = CTF_flags.objects.filter(flag_date__gt=week_ago, ctf__disabled=False, ctf__event=None)
|
||||||
scores = defaultdict(int)
|
scores = defaultdict(int)
|
||||||
|
|
||||||
for sol in weekly_flags:
|
for sol in weekly_flags:
|
||||||
|
@ -48,11 +36,11 @@ def home(request):
|
||||||
response = HttpResponseRedirect(url_translated)
|
response = HttpResponseRedirect(url_translated)
|
||||||
return response
|
return response
|
||||||
news = new.objects.order_by('-pub_date')[:5]
|
news = new.objects.order_by('-pub_date')[:5]
|
||||||
latest_ctfs = CTF.objects.filter(event=None).order_by('-pub_date')[:5]
|
latest_ctfs = CTF.objects.filter(event=None, disabled=False).order_by('-pub_date')[:5]
|
||||||
top10 = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')[:10]
|
top10 = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')[:10]
|
||||||
nb_flags = CTF_flags.objects.count()
|
nb_flags = CTF_flags.objects.count()
|
||||||
nb_users = UserProfileInfo.objects.count()
|
nb_users = UserProfileInfo.objects.count()
|
||||||
latest_flags = CTF_flags.objects.order_by('-flag_date')[:5]
|
latest_flags = CTF_flags.objects.filter(ctf__event = None, ctf__disabled=False).order_by('-flag_date')[:5]
|
||||||
top_weekly = get_weekly_top()
|
top_weekly = get_weekly_top()
|
||||||
|
|
||||||
return render(request, 'home/home.html', {'news' : news, 'ctfs' : latest_ctfs, 'top' : top10, 'flags' : nb_flags,
|
return render(request, 'home/home.html', {'news' : news, 'ctfs' : latest_ctfs, 'top' : top10, 'flags' : nb_flags,
|
||||||
|
|
|
@ -3,16 +3,15 @@
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: 2022-02-10 19:50+0100\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
@ -20,95 +19,112 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:8
|
#: accounts/templates/accounts/delete.html:8
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr ""
|
msgstr "Account löschen"
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:11
|
#: accounts/templates/accounts/delete.html:11
|
||||||
msgid "Please confirm your password to delete your account."
|
msgid "Please confirm your password to delete your account."
|
||||||
msgstr ""
|
msgstr "Bitte bestätigen Sie Ihr Passwort, um Ihren Account zu löschen."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:12
|
#: accounts/templates/accounts/delete.html:12
|
||||||
msgid "Deleted accounts cannot be recovered."
|
msgid "Deleted accounts cannot be recovered."
|
||||||
msgstr ""
|
msgstr "Gelöschte Accounts können nicht wiederhergestellt werden."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:15
|
#: accounts/templates/accounts/delete.html:15
|
||||||
msgid "Password inccorect."
|
msgid "Password inccorect."
|
||||||
msgstr ""
|
msgstr "Falsches Passwort."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:17
|
#: accounts/templates/accounts/delete.html:17
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr ""
|
msgstr "Ihr Account wurde gelöscht."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: 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:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr "Nutzername"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:25
|
#: accounts/templates/accounts/edit.html:25
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr "Email"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr "Webseite"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
#, fuzzy
|
||||||
msgid "Apply"
|
#| msgid "Apply"
|
||||||
|
msgid " Apply"
|
||||||
|
msgstr "Anwenden"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Delete account"
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr "Account löschen"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
#: events/templates/events/team.html:45
|
#: events/templates/events/team.html:45
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:15
|
#: scoreboard/templates/scoreboard/scoreboard.html:15
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr "Punktzahl"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr ""
|
msgstr "Registriert seit"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
msgid "Delete my account"
|
#, fuzzy
|
||||||
msgstr ""
|
#| msgid "Delete my account"
|
||||||
|
msgid " Delete my account"
|
||||||
|
msgstr "Meinen Account löschen"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
msgid "Please, verify your infos."
|
msgid "Please, verify your infos."
|
||||||
msgstr ""
|
msgstr "Überprüfen Sie bitte ihre Daten."
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:22
|
#: accounts/templates/accounts/login.html:22
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr "Passwort zurücksetzen"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
#: templates/registration/password_reset_form.html:26
|
#: templates/registration/password_reset_form.html:26
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr ""
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:32
|
#: accounts/templates/accounts/login.html:32
|
||||||
#: accounts/templates/accounts/register.html:37
|
#: accounts/templates/accounts/register.html:37
|
||||||
|
@ -117,37 +133,37 @@ msgstr ""
|
||||||
#: templates/registration/password_reset_done.html:19
|
#: templates/registration/password_reset_done.html:19
|
||||||
#: templates/registration/password_reset_form.html:27
|
#: templates/registration/password_reset_form.html:27
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr ""
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:10
|
#: accounts/templates/accounts/profile.html:10
|
||||||
msgid "Challenges Solved by"
|
msgid "Challenges Solved by"
|
||||||
msgstr ""
|
msgstr "Herausforderung gelöst von"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:21
|
#: accounts/templates/accounts/profile.html:21
|
||||||
#: events/templates/events/team.html:20
|
#: events/templates/events/team.html:20
|
||||||
msgid "Challenge Name"
|
msgid "Challenge Name"
|
||||||
msgstr ""
|
msgstr "Name der Herausforderung"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:22
|
#: accounts/templates/accounts/profile.html:22
|
||||||
#: events/templates/events/team.html:21
|
#: events/templates/events/team.html:21
|
||||||
msgid "Category"
|
msgid "Category"
|
||||||
msgstr ""
|
msgstr "Kategorie"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:23
|
#: accounts/templates/accounts/profile.html:23
|
||||||
#: events/templates/events/team.html:22
|
#: events/templates/events/team.html:22
|
||||||
msgid "Points"
|
msgid "Points"
|
||||||
msgstr ""
|
msgstr "Punkte"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr "Datum"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:39
|
#: accounts/templates/accounts/profile.html:39
|
||||||
msgid "It seems that this user has not solved any challenge yet..."
|
msgid "It seems that this user has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr "Es scheint bisher noch keiner diese Herausforderung gelöst zu haben..."
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:47
|
#: accounts/templates/accounts/profile.html:47
|
||||||
#: events/templates/events/event_info.html:63
|
#: events/templates/events/event_info.html:63
|
||||||
|
@ -156,438 +172,487 @@ msgstr ""
|
||||||
#: events/templates/events/team.html:46
|
#: events/templates/events/team.html:46
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Rank"
|
msgid "Rank"
|
||||||
msgstr ""
|
msgstr "Rang"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:56
|
#: accounts/templates/accounts/profile.html:56
|
||||||
msgid "Status: Member"
|
msgid "Status: Member"
|
||||||
msgstr ""
|
msgstr "Status: Mitglied"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:58
|
#: accounts/templates/accounts/profile.html:58
|
||||||
msgid "Status: Visitor"
|
msgid "Status: Visitor"
|
||||||
msgstr ""
|
msgstr "Status: Gast"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:64
|
#: accounts/templates/accounts/profile.html:64
|
||||||
#: events/templates/events/team.html:57
|
#: events/templates/events/team.html:57
|
||||||
msgid "Categories stats"
|
msgid "Categories stats"
|
||||||
msgstr ""
|
msgstr "Kategorie Statistiken"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:13
|
#: accounts/templates/accounts/register.html:13
|
||||||
msgid "Welcome !"
|
msgid "Welcome !"
|
||||||
msgstr ""
|
msgstr "Willkommen!"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:14
|
#: accounts/templates/accounts/register.html:14
|
||||||
msgid "Your account has been created."
|
msgid "Your account has been created."
|
||||||
msgstr ""
|
msgstr "Ihr Account wurde erstellt."
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:25
|
#: accounts/templates/accounts/register.html:25
|
||||||
msgid "Personal website"
|
msgid "Personal website"
|
||||||
msgstr ""
|
msgstr "Persönliche Webseite"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:26
|
#: accounts/templates/accounts/register.html:26
|
||||||
#: events/templates/events/event_info.html:119
|
#: events/templates/events/event_info.html:119
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: accounts/views/views.py:33
|
#: accounts/views/views.py:33
|
||||||
msgid "Your account was inactive."
|
msgid "Your account was inactive."
|
||||||
msgstr ""
|
msgstr "Ihr Account war inaktiv."
|
||||||
|
|
||||||
#: accounts/views/views.py:52
|
#: accounts/views/views.py:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"The password must contain at least one letter and at least one digit or "
|
"The password must contain at least one letter and at least one digit or "
|
||||||
"punctuation character."
|
"punctuation character."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Das Passwort muss mindestens einen Buchstaben und eine Ziffer oder einen "
|
||||||
|
"Satzzeichen enthalten."
|
||||||
|
|
||||||
#: accounts/views/views.py:54
|
#: accounts/views/views.py:54
|
||||||
msgid "A user with that email already exists."
|
msgid "A user with that email already exists."
|
||||||
msgstr ""
|
msgstr "Ein Nutzer mit dieser Email existiert bereits."
|
||||||
|
|
||||||
#: accounts/views/views.py:67
|
#: accounts/views/views.py:67
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr ""
|
msgstr "Ein Nutzer mit diesem Nutzernamen existiert bereits."
|
||||||
|
|
||||||
#: accounts/views/views.py:95
|
#: accounts/views/views.py:95
|
||||||
msgid "Email already taken."
|
msgid "Email already taken."
|
||||||
msgstr ""
|
msgstr "Email bereits vergeben."
|
||||||
|
|
||||||
#: accounts/views/views.py:101
|
#: accounts/views/views.py:101
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr ""
|
msgstr "Nutzername bereits vergeben."
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr ""
|
msgstr "Aktualisiert."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr "Veröffentlichungsdatum"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr ""
|
msgstr "Herausforderung ist noch nicht verfügbar."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid "Already flagged"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr "Herzlichen Glückwunsch!"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:26
|
||||||
#: events/templates/events/ctf_info.html:51
|
msgid "Already flagged"
|
||||||
msgid "Start the challenge"
|
msgstr "Schon gelöst"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:45
|
||||||
|
msgid "Start the challenge"
|
||||||
|
msgstr "Herausforderung beginnen"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
|
#: events/templates/events/ctf_info.html:38
|
||||||
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr "Herunterladen"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr "Falsche flagge! Sie können es schaffen!"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr "Gelöst von"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr ""
|
msgstr "Bisher hat noch niemand diese Herausforderung gelöst."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr "Autor/-in"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr "Belohnungspunkte"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:14
|
#: ctfs/templates/ctfs/ctfs_list.html:14
|
||||||
msgid "Solved"
|
msgid "Solved"
|
||||||
msgstr ""
|
msgstr "Gelöst"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:37
|
#: ctfs/templates/ctfs/ctfs_list.html:37
|
||||||
msgid "No ctf available for this category."
|
msgid "No ctf available for this category."
|
||||||
msgstr ""
|
msgstr "Kein CTF in dieser Kategorie verfügbar."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:42
|
#: ctfs/templates/ctfs/ctfs_list.html:42
|
||||||
msgid "Categories"
|
msgid "Categories"
|
||||||
msgstr ""
|
msgstr "Kategorien"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr ""
|
msgstr "Keine Kategorie verfügbar."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr ""
|
msgstr "Dieses Ereignis beginnt am"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr ""
|
msgstr "Sie müssen am Ereignis teilnehmen."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr ""
|
msgstr "Name schon vergeben."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr ""
|
msgstr "Teamname"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr ""
|
msgstr "Team erstellen"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr ""
|
msgstr "Sie müssen angemeldet sein um auf dieses Ereignis zuzugreifen."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
|
||||||
#: events/templates/events/event_info.html:113
|
|
||||||
#: events/templates/events/event_pwd.html:36
|
|
||||||
#: events/templates/events/join_team.html:46
|
|
||||||
msgid "Starts at"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:42
|
||||||
|
#: events/templates/events/event_info.html:113
|
||||||
|
#: events/templates/events/event_pwd.html:36
|
||||||
|
#: events/templates/events/join_team.html:47
|
||||||
|
msgid "Starts at"
|
||||||
|
msgstr "Beginnt am"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr ""
|
msgstr "Endet am"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
msgid "Join Team"
|
msgid "Manage my team"
|
||||||
msgstr ""
|
msgstr "Team verwalten"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:48
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
|
msgid "Join Team"
|
||||||
|
msgstr "Team beitreten"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:53
|
||||||
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr "Auto-Matching"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr "Finde mir einen Team!"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:10
|
#: events/templates/events/ctf_info.html:10
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr "Ereignis"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Keine Übersetzung verfügbar. Bitte versuchen Sie es auf einer anderen "
|
||||||
|
"Sprache noch einmal (Englisch oder Französisch)."
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
|
#: events/templates/events/event_info.html:18
|
||||||
|
msgid "This event is over."
|
||||||
|
msgstr "Dieses Ereignis hat bereits geendet."
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:30
|
||||||
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
|
msgstr "Fehler während der Verarbeitung ihrer Anfrage. (Ungültiges Formular)"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
|
msgid ""
|
||||||
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr "Die Registrierung hat geendet."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:12
|
#: events/templates/events/event_info.html:12
|
||||||
#: events/templates/events/event_pwd.html:18
|
#: events/templates/events/event_pwd.html:18
|
||||||
msgid "You're already registered to this event."
|
msgid "You're already registered to this event."
|
||||||
msgstr ""
|
msgstr "Sie haben sich schon für dieses Ereignis registriert."
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
|
||||||
msgid "This event is over."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
|
||||||
msgid ""
|
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
|
||||||
"fucking logic."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
#: events/templates/events/event_pwd.html:9
|
#: events/templates/events/event_pwd.html:9
|
||||||
msgid "This event start at"
|
msgid "This event start at"
|
||||||
msgstr ""
|
msgstr "Dieses Ereignis startet am"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:30
|
#: events/templates/events/event_info.html:30
|
||||||
msgid "Challenges"
|
msgid "Challenges"
|
||||||
msgstr ""
|
msgstr "Herausforderungen"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:47
|
#: events/templates/events/event_info.html:47
|
||||||
msgid "No challenges available."
|
msgid "No challenges available."
|
||||||
msgstr ""
|
msgstr "Keine Herausforderung verfügbar."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:51
|
#: events/templates/events/event_info.html:51
|
||||||
msgid "The event has not started yet."
|
msgid "The event has not started yet."
|
||||||
msgstr ""
|
msgstr "Das Ereignis hat noch nicht begonnen."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:57
|
#: events/templates/events/event_info.html:57
|
||||||
msgid "ScoreBoard"
|
msgid "ScoreBoard"
|
||||||
msgstr ""
|
msgstr "Punktestand"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:88
|
#: events/templates/events/event_info.html:88
|
||||||
msgid "Team"
|
msgid "Team"
|
||||||
msgstr ""
|
msgstr "Team"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:106
|
#: events/templates/events/event_info.html:106
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr ""
|
msgstr "Niemand hat bisher Punkte verdient, werden Sie der erste sein?"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr ""
|
msgstr "Falsches Passwort eingetragen."
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:20
|
#: events/templates/events/event_pwd.html:20
|
||||||
msgid "This event is password protected"
|
msgid "This event is password protected"
|
||||||
msgstr ""
|
msgstr "Dieses Ereignis ist passwortgeschützt"
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:21
|
#: events/templates/events/event_pwd.html:21
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr ""
|
msgstr "Sie müssen das Ereignispasswort eintragen um darauf zuzugreifen."
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr ""
|
msgstr "Ereignisse"
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:38
|
#: events/templates/events/events_list.html:38
|
||||||
msgid "See more"
|
msgid "See more"
|
||||||
msgstr ""
|
msgstr "Weiter"
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:44
|
#: events/templates/events/events_list.html:44
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr ""
|
msgstr "Keine Ereignisse verfügbar."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr ""
|
msgstr "Team existiert nicht."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr ""
|
msgstr "Maximale Mitgliederanzahl erreicht."
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:26
|
#: events/templates/events/manage_team.html:26
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr ""
|
msgstr "Teampasswort"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Anwenden"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr "Mitgliede"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr ""
|
msgstr "Team verlassen"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Auto-matching"
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr "Auto-Matching"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Auto-matching"
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr "Auto-Matching"
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr "Dieses Team scheint noch keine Herausforderung gelöst zu haben..."
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr "Top 5 der Woche"
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr ""
|
msgstr "Kein Artikel verfügbar."
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr ""
|
msgstr "Neue Herausforderungen"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:58
|
||||||
|
msgid "points"
|
||||||
|
msgstr "Punkte"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:62
|
||||||
|
msgid "No ctf available."
|
||||||
|
msgstr "Kein CTF verfügbar."
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:66
|
||||||
msgid "points"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
|
||||||
msgid "No ctf available."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr "Letzte Flaggen"
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr "Flaggen"
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr "Nutzer"
|
||||||
|
|
||||||
#: project/settings.py:115
|
|
||||||
msgid "English"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:116
|
||||||
msgid "German"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:117
|
||||||
msgid "French"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:118
|
||||||
|
msgid "French"
|
||||||
|
msgstr "Französisch"
|
||||||
|
|
||||||
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
|
msgstr "Russisch"
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr ""
|
msgstr "Erste"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:39
|
#: scoreboard/templates/scoreboard/scoreboard.html:39
|
||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr ""
|
msgstr "Vorherige"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:43
|
#: scoreboard/templates/scoreboard/scoreboard.html:43
|
||||||
msgid "Page "
|
msgid "Page "
|
||||||
msgstr ""
|
msgstr "Seite "
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:47
|
#: scoreboard/templates/scoreboard/scoreboard.html:47
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr ""
|
msgstr "Nächste"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:48
|
#: scoreboard/templates/scoreboard/scoreboard.html:48
|
||||||
msgid "Last"
|
msgid "Last"
|
||||||
msgstr ""
|
msgstr "Letzte"
|
||||||
|
|
||||||
#: templates/base.html:59
|
#: templates/base.html:59
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr "Punktestand"
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr "Ressourcen"
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr "Abmelden"
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr "Registrieren"
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr ""
|
msgstr "Unterstützen Sie uns!"
|
||||||
|
|
||||||
#: templates/registration/password_reset_complete.html:11
|
#: templates/registration/password_reset_complete.html:11
|
||||||
msgid "Your new password has been set."
|
msgid "Your new password has been set."
|
||||||
msgstr ""
|
msgstr "Ihr neues Passwort wurde festgelegt."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:20
|
#: templates/registration/password_reset_confirm.html:20
|
||||||
msgid "Your password can’t be too similar to your other personal information."
|
msgid "Your password can’t be too similar to your other personal information."
|
||||||
msgstr ""
|
msgstr "Ihr Passwort kann nicht zu ähnlich zu ihren persönlichen Daten sein."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:21
|
#: templates/registration/password_reset_confirm.html:21
|
||||||
msgid "Your password must contain at least 8 characters."
|
msgid "Your password must contain at least 8 characters."
|
||||||
msgstr ""
|
msgstr "Ihr Passwort muss mindestens 8 Zeichen enthalten."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:22
|
#: templates/registration/password_reset_confirm.html:22
|
||||||
msgid "Your password can’t be a commonly used password."
|
msgid "Your password can’t be a commonly used password."
|
||||||
msgstr ""
|
msgstr "Ihr Passwort kann nicht ein häufig benutztes Passwort sein."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:23
|
#: templates/registration/password_reset_confirm.html:23
|
||||||
msgid "Your password can’t be entirely numeric."
|
msgid "Your password can’t be entirely numeric."
|
||||||
msgstr ""
|
msgstr "Ihr Passwort kann nicht nur Ziffern enthalten."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:26
|
#: templates/registration/password_reset_confirm.html:26
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr ""
|
msgstr "Bestätigen"
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:28
|
#: templates/registration/password_reset_confirm.html:28
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr "Einreichen"
|
||||||
|
|
||||||
#: templates/registration/password_reset_done.html:11
|
#: templates/registration/password_reset_done.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"We've emailed you instructions for setting your password. You should receive "
|
"We've emailed you instructions for setting your password. You should receive "
|
||||||
"the email shortly!"
|
"the email shortly!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Wir haben Ihnen eine Anleitung um Ihren Passwort zurückzusetzen per Email "
|
||||||
|
"geschickt. Sie sollten sie in Kürze empfangen!"
|
||||||
|
|
||||||
#: templates/registration/password_reset_form.html:16
|
#: templates/registration/password_reset_form.html:16
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
msgstr ""
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Error: you're not registered to this event, so you can't register scores, "
|
||||||
|
#~ "fucking logic."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Fehler: Sie nehmen an diesem Ereignis nicht teil, und können deshalb "
|
||||||
|
#~ "keinen Punktestand registrieren."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~| msgid "Manage my team"
|
||||||
|
#~ msgid "Manage team"
|
||||||
|
#~ msgstr "Team verwalten"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -41,16 +41,16 @@ msgstr ""
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
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:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
|
@ -61,21 +61,32 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
msgid " Apply"
|
||||||
msgid "Apply"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
|
@ -84,13 +95,13 @@ msgstr ""
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
msgid "Delete my account"
|
msgid " Delete my account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
|
@ -102,7 +113,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:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
|
@ -139,8 +150,8 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -214,69 +225,63 @@ msgstr ""
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:26
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:51
|
#: events/templates/events/ctf_info.html:45
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:38
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -296,60 +301,71 @@ msgstr ""
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
#: events/templates/events/create_team.html:42
|
||||||
#: events/templates/events/event_info.html:113
|
#: events/templates/events/event_info.html:113
|
||||||
#: events/templates/events/event_pwd.html:36
|
#: events/templates/events/event_pwd.html:36
|
||||||
#: events/templates/events/join_team.html:46
|
#: events/templates/events/join_team.html:47
|
||||||
msgid "Starts at"
|
msgid "Starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
|
msgid "Manage my team"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:48
|
||||||
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
msgid "Join Team"
|
msgid "Join Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:53
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -357,30 +373,36 @@ msgstr ""
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
#: events/templates/events/event_info.html:12
|
|
||||||
#: events/templates/events/event_pwd.html:18
|
|
||||||
msgid "You're already registered to this event."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
#: events/templates/events/event_info.html:18
|
||||||
msgid "This event is over."
|
msgid "This event is over."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
#: events/templates/events/ctf_info.html:30
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
"fucking logic."
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:12
|
||||||
|
#: events/templates/events/event_pwd.html:18
|
||||||
|
msgid "You're already registered to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
|
@ -412,12 +434,8 @@ msgstr ""
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -429,7 +447,7 @@ msgstr ""
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -441,11 +459,11 @@ msgstr ""
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -453,67 +471,87 @@ msgstr ""
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:58
|
||||||
msgid "points"
|
msgid "points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
#: home/templates/home/home.html:62
|
||||||
msgid "No ctf available."
|
msgid "No ctf available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
#: home/templates/home/home.html:66
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:115
|
#: project/settings.py:116
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:117
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:118
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -538,19 +576,19 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,11 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: 2022-02-09 10:55+0100\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Javier Uhagón (uhagontorralvojavier@gmail.com)\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
@ -20,95 +20,112 @@ msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:8
|
#: accounts/templates/accounts/delete.html:8
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr ""
|
msgstr "Borrar cuenta"
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:11
|
#: accounts/templates/accounts/delete.html:11
|
||||||
msgid "Please confirm your password to delete your account."
|
msgid "Please confirm your password to delete your account."
|
||||||
msgstr ""
|
msgstr "Por favor confirme su contraseña para borrar su cuenta."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:12
|
#: accounts/templates/accounts/delete.html:12
|
||||||
msgid "Deleted accounts cannot be recovered."
|
msgid "Deleted accounts cannot be recovered."
|
||||||
msgstr ""
|
msgstr "Las cuentas borradas no pueden ser recuperadas."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:15
|
#: accounts/templates/accounts/delete.html:15
|
||||||
msgid "Password inccorect."
|
msgid "Password inccorect."
|
||||||
msgstr ""
|
msgstr "Contraseña incorrecta."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:17
|
#: accounts/templates/accounts/delete.html:17
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr ""
|
msgstr "Su cuenta ha sido borrada."
|
||||||
|
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr "Contraseña"
|
||||||
|
|
||||||
#: 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:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
msgstr ""
|
msgstr "Usuario"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:25
|
#: accounts/templates/accounts/edit.html:25
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr "Email"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr "Página Web"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
#, fuzzy
|
||||||
msgid "Apply"
|
#| msgid "Apply"
|
||||||
|
msgid " Apply"
|
||||||
|
msgstr "Aplicar"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Delete account"
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr "Borrar cuenta"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
#: events/templates/events/team.html:45
|
#: events/templates/events/team.html:45
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:15
|
#: scoreboard/templates/scoreboard/scoreboard.html:15
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr "Puntuación"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr ""
|
msgstr "Registrado desde"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
msgid "Delete my account"
|
#, fuzzy
|
||||||
msgstr ""
|
#| msgid "Delete my account"
|
||||||
|
msgid " Delete my account"
|
||||||
|
msgstr "Borrar mi cuenta"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
msgid "Please, verify your infos."
|
msgid "Please, verify your infos."
|
||||||
msgstr ""
|
msgstr "Por favor, verifique su información."
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:22
|
#: accounts/templates/accounts/login.html:22
|
||||||
msgid "Reset password"
|
msgid "Reset password"
|
||||||
msgstr ""
|
msgstr "Cambiar contraseña"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
#: templates/registration/password_reset_form.html:26
|
#: templates/registration/password_reset_form.html:26
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr ""
|
msgstr "Iniciar Sesión"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:32
|
#: accounts/templates/accounts/login.html:32
|
||||||
#: accounts/templates/accounts/register.html:37
|
#: accounts/templates/accounts/register.html:37
|
||||||
|
@ -117,37 +134,37 @@ msgstr ""
|
||||||
#: templates/registration/password_reset_done.html:19
|
#: templates/registration/password_reset_done.html:19
|
||||||
#: templates/registration/password_reset_form.html:27
|
#: templates/registration/password_reset_form.html:27
|
||||||
msgid "Sign up"
|
msgid "Sign up"
|
||||||
msgstr ""
|
msgstr "Registrarse"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:10
|
#: accounts/templates/accounts/profile.html:10
|
||||||
msgid "Challenges Solved by"
|
msgid "Challenges Solved by"
|
||||||
msgstr ""
|
msgstr "Retos resueltos por"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:21
|
#: accounts/templates/accounts/profile.html:21
|
||||||
#: events/templates/events/team.html:20
|
#: events/templates/events/team.html:20
|
||||||
msgid "Challenge Name"
|
msgid "Challenge Name"
|
||||||
msgstr ""
|
msgstr "Nombre del reto"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:22
|
#: accounts/templates/accounts/profile.html:22
|
||||||
#: events/templates/events/team.html:21
|
#: events/templates/events/team.html:21
|
||||||
msgid "Category"
|
msgid "Category"
|
||||||
msgstr ""
|
msgstr "Categoría"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:23
|
#: accounts/templates/accounts/profile.html:23
|
||||||
#: events/templates/events/team.html:22
|
#: events/templates/events/team.html:22
|
||||||
msgid "Points"
|
msgid "Points"
|
||||||
msgstr ""
|
msgstr "Puntos"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr "Fecha"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:39
|
#: accounts/templates/accounts/profile.html:39
|
||||||
msgid "It seems that this user has not solved any challenge yet..."
|
msgid "It seems that this user has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr "Parece que este usuario no ha resuelto ningún reto aún..."
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:47
|
#: accounts/templates/accounts/profile.html:47
|
||||||
#: events/templates/events/event_info.html:63
|
#: events/templates/events/event_info.html:63
|
||||||
|
@ -156,438 +173,482 @@ msgstr ""
|
||||||
#: events/templates/events/team.html:46
|
#: events/templates/events/team.html:46
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
msgid "Rank"
|
msgid "Rank"
|
||||||
msgstr ""
|
msgstr "Rango"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:56
|
#: accounts/templates/accounts/profile.html:56
|
||||||
msgid "Status: Member"
|
msgid "Status: Member"
|
||||||
msgstr ""
|
msgstr "Estatus: Miembro"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:58
|
#: accounts/templates/accounts/profile.html:58
|
||||||
msgid "Status: Visitor"
|
msgid "Status: Visitor"
|
||||||
msgstr ""
|
msgstr "Estatus: Visitante"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:64
|
#: accounts/templates/accounts/profile.html:64
|
||||||
#: events/templates/events/team.html:57
|
#: events/templates/events/team.html:57
|
||||||
msgid "Categories stats"
|
msgid "Categories stats"
|
||||||
msgstr ""
|
msgstr "Estádisticas de las categorías"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:13
|
#: accounts/templates/accounts/register.html:13
|
||||||
msgid "Welcome !"
|
msgid "Welcome !"
|
||||||
msgstr ""
|
msgstr "¡ Bienvenid@ !"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:14
|
#: accounts/templates/accounts/register.html:14
|
||||||
msgid "Your account has been created."
|
msgid "Your account has been created."
|
||||||
msgstr ""
|
msgstr "Tu cuenta ha sido creada."
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:25
|
#: accounts/templates/accounts/register.html:25
|
||||||
msgid "Personal website"
|
msgid "Personal website"
|
||||||
msgstr ""
|
msgstr "Web personal"
|
||||||
|
|
||||||
#: accounts/templates/accounts/register.html:26
|
#: accounts/templates/accounts/register.html:26
|
||||||
#: events/templates/events/event_info.html:119
|
#: events/templates/events/event_info.html:119
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr ""
|
msgstr "Registrarse"
|
||||||
|
|
||||||
#: accounts/views/views.py:33
|
#: accounts/views/views.py:33
|
||||||
msgid "Your account was inactive."
|
msgid "Your account was inactive."
|
||||||
msgstr ""
|
msgstr "Tu cuenta estaba inactiva."
|
||||||
|
|
||||||
#: accounts/views/views.py:52
|
#: accounts/views/views.py:52
|
||||||
msgid ""
|
msgid ""
|
||||||
"The password must contain at least one letter and at least one digit or "
|
"The password must contain at least one letter and at least one digit or "
|
||||||
"punctuation character."
|
"punctuation character."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La contraseña debe contener al menos una letra y un dígito o un signo de "
|
||||||
|
"puntuación."
|
||||||
|
|
||||||
#: accounts/views/views.py:54
|
#: accounts/views/views.py:54
|
||||||
msgid "A user with that email already exists."
|
msgid "A user with that email already exists."
|
||||||
msgstr ""
|
msgstr "Ya existe un usuario con este email."
|
||||||
|
|
||||||
#: accounts/views/views.py:67
|
#: accounts/views/views.py:67
|
||||||
msgid "A user with that username already exists."
|
msgid "A user with that username already exists."
|
||||||
msgstr ""
|
msgstr "Ese nombre de usuario ya está en uso."
|
||||||
|
|
||||||
#: accounts/views/views.py:95
|
#: accounts/views/views.py:95
|
||||||
msgid "Email already taken."
|
msgid "Email already taken."
|
||||||
msgstr ""
|
msgstr "Email ya usado."
|
||||||
|
|
||||||
#: accounts/views/views.py:101
|
#: accounts/views/views.py:101
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr ""
|
msgstr "Nombre de usuario ya usado."
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr ""
|
msgstr "Actualizado."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr "Fecha de publicación"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr ""
|
msgstr "El reto aún no está disponible."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid "Already flagged"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr "¡ Felicidades !"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:26
|
||||||
#: events/templates/events/ctf_info.html:51
|
msgid "Already flagged"
|
||||||
msgid "Start the challenge"
|
msgstr "Flag ya conseguida"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:45
|
||||||
|
msgid "Start the challenge"
|
||||||
|
msgstr "Comenzar el reto"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
|
#: events/templates/events/ctf_info.html:38
|
||||||
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr "Descargar"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr "¡ Flag incorrecta ! ¡ Puedes hacerlo !"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr "Resuelto por"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr ""
|
msgstr "Nadie ha resuelto este reto aún."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr "Autor"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr "Recompensa de puntos"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:14
|
#: ctfs/templates/ctfs/ctfs_list.html:14
|
||||||
msgid "Solved"
|
msgid "Solved"
|
||||||
msgstr ""
|
msgstr "Resuelto"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:37
|
#: ctfs/templates/ctfs/ctfs_list.html:37
|
||||||
msgid "No ctf available for this category."
|
msgid "No ctf available for this category."
|
||||||
msgstr ""
|
msgstr "No hay un ctf disponible para esta categoría."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:42
|
#: ctfs/templates/ctfs/ctfs_list.html:42
|
||||||
msgid "Categories"
|
msgid "Categories"
|
||||||
msgstr ""
|
msgstr "Categorías"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr ""
|
msgstr "No hay categoría disponible."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr ""
|
msgstr "Este evento empieza"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr ""
|
msgstr "Necesitas estar registrado al evento."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr ""
|
msgstr "Nombre ya elegido."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr ""
|
msgstr "Nombre de equipo"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr ""
|
msgstr "Crear equipo"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr ""
|
msgstr "Necesitas tener una sesión iniciada para acceder a este evento."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
|
||||||
#: events/templates/events/event_info.html:113
|
|
||||||
#: events/templates/events/event_pwd.html:36
|
|
||||||
#: events/templates/events/join_team.html:46
|
|
||||||
msgid "Starts at"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:42
|
||||||
|
#: events/templates/events/event_info.html:113
|
||||||
|
#: events/templates/events/event_pwd.html:36
|
||||||
|
#: events/templates/events/join_team.html:47
|
||||||
|
msgid "Starts at"
|
||||||
|
msgstr "Empieza a las"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr ""
|
msgstr "Acaba a las"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
msgid "Join Team"
|
msgid "Manage my team"
|
||||||
msgstr ""
|
msgstr "Gestionar mi equipo"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:48
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
|
msgid "Join Team"
|
||||||
|
msgstr "Unirse a un equipo"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:53
|
||||||
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr "Auto-matching"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr "¡ Encuentrame un equipo !"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:10
|
#: events/templates/events/ctf_info.html:10
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr "Evento"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Traducción no disponible. Por favor pruebe otro idioma (inglés o francés)."
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
|
#: events/templates/events/event_info.html:18
|
||||||
|
msgid "This event is over."
|
||||||
|
msgstr "Este evento ya ha acabado."
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:30
|
||||||
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
|
msgstr "Error al procesar tu solicitud. (Formulario incorrecto)"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
|
msgid ""
|
||||||
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr "El periodo de suscripción ha acabado."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:12
|
#: events/templates/events/event_info.html:12
|
||||||
#: events/templates/events/event_pwd.html:18
|
#: events/templates/events/event_pwd.html:18
|
||||||
msgid "You're already registered to this event."
|
msgid "You're already registered to this event."
|
||||||
msgstr ""
|
msgstr "Ya estás registrado a este evento."
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
|
||||||
msgid "This event is over."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
|
||||||
msgid ""
|
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
|
||||||
"fucking logic."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
#: events/templates/events/event_pwd.html:9
|
#: events/templates/events/event_pwd.html:9
|
||||||
msgid "This event start at"
|
msgid "This event start at"
|
||||||
msgstr ""
|
msgstr "Este evento empieza"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:30
|
#: events/templates/events/event_info.html:30
|
||||||
msgid "Challenges"
|
msgid "Challenges"
|
||||||
msgstr ""
|
msgstr "Retos"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:47
|
#: events/templates/events/event_info.html:47
|
||||||
msgid "No challenges available."
|
msgid "No challenges available."
|
||||||
msgstr ""
|
msgstr "No hay retos disponibles."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:51
|
#: events/templates/events/event_info.html:51
|
||||||
msgid "The event has not started yet."
|
msgid "The event has not started yet."
|
||||||
msgstr ""
|
msgstr "El evento no ha empezado aún."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:57
|
#: events/templates/events/event_info.html:57
|
||||||
msgid "ScoreBoard"
|
msgid "ScoreBoard"
|
||||||
msgstr ""
|
msgstr "Tabla de puntuaciones"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:88
|
#: events/templates/events/event_info.html:88
|
||||||
msgid "Team"
|
msgid "Team"
|
||||||
msgstr ""
|
msgstr "Equipo"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:106
|
#: events/templates/events/event_info.html:106
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr ""
|
msgstr "Nadie ha conseguido puntos aún, ¿Vas a ser el primero?"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr ""
|
msgstr "Contraseña incorrecta."
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:20
|
#: events/templates/events/event_pwd.html:20
|
||||||
msgid "This event is password protected"
|
msgid "This event is password protected"
|
||||||
msgstr ""
|
msgstr "Este evento está protegido con contraseña"
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:21
|
#: events/templates/events/event_pwd.html:21
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr ""
|
msgstr "Necesitas introducir la contraseña del evento para participar."
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr ""
|
msgstr "Eventos"
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:38
|
#: events/templates/events/events_list.html:38
|
||||||
msgid "See more"
|
msgid "See more"
|
||||||
msgstr ""
|
msgstr "Ver más"
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:44
|
#: events/templates/events/events_list.html:44
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr ""
|
msgstr "No hay eventos disponibles."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr ""
|
msgstr "El equipo no existe."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr ""
|
msgstr "Tamaño máximo alcanzado."
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:26
|
#: events/templates/events/manage_team.html:26
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr ""
|
msgstr "Contraseña del equipo"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Aplicar"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr "Miembros"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr ""
|
msgstr "Salir del equipo"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Auto-matching"
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr "Auto-matching"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Auto-matching"
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr "Auto-matching"
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr "Parece que este equipo aún no ha resuelto ningún reto..."
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr "Top 5 semanal"
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr ""
|
msgstr "Articulos no disponibles."
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr ""
|
msgstr "Ultimos retos añadidos"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:58
|
||||||
|
msgid "points"
|
||||||
|
msgstr "puntos"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:62
|
||||||
|
msgid "No ctf available."
|
||||||
|
msgstr "ctf no disponible."
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:66
|
||||||
msgid "points"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
|
||||||
msgid "No ctf available."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr "Ultimas Flags."
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr "Flags"
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr "Usuarios"
|
||||||
|
|
||||||
#: project/settings.py:115
|
|
||||||
msgid "English"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:116
|
||||||
msgid "German"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr "Inglés"
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:117
|
||||||
msgid "French"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr "Alemán"
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:118
|
||||||
|
msgid "French"
|
||||||
|
msgstr "Francés"
|
||||||
|
|
||||||
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
|
msgstr "Ruso"
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr ""
|
msgstr "Primero"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:39
|
#: scoreboard/templates/scoreboard/scoreboard.html:39
|
||||||
msgid "Previous"
|
msgid "Previous"
|
||||||
msgstr ""
|
msgstr "Anterior"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:43
|
#: scoreboard/templates/scoreboard/scoreboard.html:43
|
||||||
msgid "Page "
|
msgid "Page "
|
||||||
msgstr ""
|
msgstr "Pagina "
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:47
|
#: scoreboard/templates/scoreboard/scoreboard.html:47
|
||||||
msgid "Next"
|
msgid "Next"
|
||||||
msgstr ""
|
msgstr "Siguiente"
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:48
|
#: scoreboard/templates/scoreboard/scoreboard.html:48
|
||||||
msgid "Last"
|
msgid "Last"
|
||||||
msgstr ""
|
msgstr "Último"
|
||||||
|
|
||||||
#: templates/base.html:59
|
#: templates/base.html:59
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr "Tabla de puntuaciones"
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr "Recursos"
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr "Cerrar sesión"
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr "Registrarse"
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr ""
|
msgstr "¡Conviertete en un Mecenas!"
|
||||||
|
|
||||||
#: templates/registration/password_reset_complete.html:11
|
#: templates/registration/password_reset_complete.html:11
|
||||||
msgid "Your new password has been set."
|
msgid "Your new password has been set."
|
||||||
msgstr ""
|
msgstr "Contraseña cambiada correctamente."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:20
|
#: templates/registration/password_reset_confirm.html:20
|
||||||
msgid "Your password can’t be too similar to your other personal information."
|
msgid "Your password can’t be too similar to your other personal information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Tu contraseña no puede ser tan similar al resto de tu información personal."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:21
|
#: templates/registration/password_reset_confirm.html:21
|
||||||
msgid "Your password must contain at least 8 characters."
|
msgid "Your password must contain at least 8 characters."
|
||||||
msgstr ""
|
msgstr "Tu contraseña debe tener al menos 8 carácteres."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:22
|
#: templates/registration/password_reset_confirm.html:22
|
||||||
msgid "Your password can’t be a commonly used password."
|
msgid "Your password can’t be a commonly used password."
|
||||||
msgstr ""
|
msgstr "Tu contraseña no puede ser una contraseña tan común."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:23
|
#: templates/registration/password_reset_confirm.html:23
|
||||||
msgid "Your password can’t be entirely numeric."
|
msgid "Your password can’t be entirely numeric."
|
||||||
msgstr ""
|
msgstr "Tu contraseña no puede ser solo numérica."
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:26
|
#: templates/registration/password_reset_confirm.html:26
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr ""
|
msgstr "Confirmar"
|
||||||
|
|
||||||
#: templates/registration/password_reset_confirm.html:28
|
#: templates/registration/password_reset_confirm.html:28
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr "Enviar"
|
||||||
|
|
||||||
#: templates/registration/password_reset_done.html:11
|
#: templates/registration/password_reset_done.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"We've emailed you instructions for setting your password. You should receive "
|
"We've emailed you instructions for setting your password. You should receive "
|
||||||
"the email shortly!"
|
"the email shortly!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Te hemos enviado por email las instrucciones para cambiar tu contraseña. "
|
||||||
|
"¡Deberías recibir el email pronto!"
|
||||||
|
|
||||||
#: templates/registration/password_reset_form.html:16
|
#: templates/registration/password_reset_form.html:16
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
msgstr ""
|
msgstr "Restablecer"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Error: you're not registered to this event, so you can't register scores, "
|
||||||
|
#~ "fucking logic."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Error: No estás registrado a este evento, por lo que no puedes ganar "
|
||||||
|
#~ "puntos, Maldita lógica."
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -45,16 +45,16 @@ msgstr "Votre compte a été créé."
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Mot de passe"
|
msgstr "Mot de passe"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:21
|
#: accounts/templates/accounts/edit.html:21
|
||||||
#: accounts/templates/accounts/login.html:18
|
#: accounts/templates/accounts/login.html:18
|
||||||
#: accounts/templates/accounts/register.html:22
|
#: accounts/templates/accounts/register.html:22
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
|
@ -65,21 +65,36 @@ msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr "Site internet"
|
msgstr "Site internet"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
#, fuzzy
|
||||||
msgid "Apply"
|
#| msgid "Apply"
|
||||||
|
msgid " Apply"
|
||||||
msgstr "Appliquer"
|
msgstr "Appliquer"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Connected accounts"
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr "Comptes connectés"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
|
msgstr "Déconnecter Discord"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr "Connecter Discord"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
|
@ -88,15 +103,15 @@ msgstr "Appliquer"
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "Score"
|
msgstr "Score"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr "Inscrit depuis"
|
msgstr "Inscrit depuis"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Connected accounts"
|
#| msgid "Connected accounts"
|
||||||
msgid "Delete my account"
|
msgid " Delete my account"
|
||||||
msgstr "Comptes connectés"
|
msgstr "Comptes connectés"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
|
@ -108,7 +123,7 @@ msgid "Reset password"
|
||||||
msgstr "Réinitialiser le mot de passe"
|
msgstr "Réinitialiser le mot de passe"
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:31
|
#: accounts/templates/accounts/login.html:31
|
||||||
#: accounts/templates/accounts/register.html:38 templates/base.html:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
|
@ -145,8 +160,8 @@ msgid "Points"
|
||||||
msgstr "Points"
|
msgstr "Points"
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "Date"
|
msgstr "Date"
|
||||||
|
@ -224,71 +239,65 @@ msgstr "L'adresse mail est déjà utilisée."
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr "Le pseudo est déjà utilisé."
|
msgstr "Le pseudo est déjà utilisé."
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr "Mis à jour."
|
msgstr "Mis à jour."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr "Date de publication"
|
msgstr "Date de publication"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "No category available."
|
#| msgid "No category available."
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr "Il n'y a pas de catégorie disponible."
|
msgstr "Il n'y a pas de catégorie disponible."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr "Félicitations !"
|
msgstr "Félicitations !"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:26
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr "Déjà résolu"
|
msgstr "Déjà résolu"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:51
|
#: events/templates/events/ctf_info.html:45
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr "Démarrer le challenge"
|
msgstr "Démarrer le challenge"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:38
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr "Télécharger"
|
msgstr "Télécharger"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
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:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr "Résolu par"
|
msgstr "Résolu par"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr "Personne n'a résolu ce CTF."
|
msgstr "Personne n'a résolu ce CTF."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Auteur"
|
msgstr "Auteur"
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr "Points"
|
msgstr "Points"
|
||||||
|
|
||||||
|
@ -308,66 +317,77 @@ msgstr "Catégories"
|
||||||
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."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "This event start at"
|
#| msgid "This event start at"
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr "Cet événement débute à"
|
msgstr "Cet événement débute à"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "You're already registered to this event."
|
#| msgid "You're already registered to this event."
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr "Vous êtes déjà inscrit à cet événement."
|
msgstr "Vous êtes déjà inscrit à cet événement."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Username already taken."
|
#| msgid "Username already taken."
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr "Ce nom est déjà utilisé."
|
msgstr "Ce nom est déjà utilisé."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr "Nom de l'équipe"
|
msgstr "Nom de l'équipe"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr "Créer une équipe"
|
msgstr "Créer une équipe"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr "Vous devez être connecté pour accéder à cet événement."
|
msgstr "Vous devez être connecté pour accéder à cet événement."
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
#: events/templates/events/create_team.html:42
|
||||||
#: events/templates/events/event_info.html:113
|
#: events/templates/events/event_info.html:113
|
||||||
#: events/templates/events/event_pwd.html:36
|
#: events/templates/events/event_pwd.html:36
|
||||||
#: events/templates/events/join_team.html:46
|
#: events/templates/events/join_team.html:47
|
||||||
msgid "Starts at"
|
msgid "Starts at"
|
||||||
msgstr "Début"
|
msgstr "Début"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr "Fin"
|
msgstr "Fin"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
|
msgid "Manage my team"
|
||||||
|
msgstr "Gérer mon équipe"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:48
|
||||||
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
msgid "Join Team"
|
msgid "Join Team"
|
||||||
msgstr "Rejoindre une équipe"
|
msgstr "Rejoindre une équipe"
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:53
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -375,33 +395,37 @@ msgstr ""
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Événement"
|
msgstr "Événement"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr "Les inscriptions sont terminées."
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
#: events/templates/events/event_info.html:12
|
|
||||||
#: events/templates/events/event_pwd.html:18
|
|
||||||
msgid "You're already registered to this event."
|
|
||||||
msgstr "Vous êtes déjà inscrit à cet événement."
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
#: events/templates/events/event_info.html:18
|
||||||
msgid "This event is over."
|
msgid "This event is over."
|
||||||
msgstr "Cet événement est terminé."
|
msgstr "Cet événement est terminé."
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
#: events/templates/events/ctf_info.html:30
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
msgstr "Erreur lors du traitement de votre requête. (Formulaire non valide)"
|
msgstr "Erreur lors du traitement de votre requête. (Formulaire non valide)"
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
#: events/templates/events/ctf_info.html:32
|
||||||
msgid ""
|
msgid "You must register to the event before submitting flags."
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
|
||||||
"fucking logic."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Erreur : vous n'êtes pas inscrit à cet événement, vous ne pouvez donc pas "
|
|
||||||
"enregistrer de scores,C'est putain de logique."
|
#: events/templates/events/ctf_info.html:34
|
||||||
|
msgid ""
|
||||||
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr "Les inscriptions sont terminées."
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:12
|
||||||
|
#: events/templates/events/event_pwd.html:18
|
||||||
|
msgid "You're already registered to this event."
|
||||||
|
msgstr "Vous êtes déjà inscrit à cet événement."
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
#: events/templates/events/event_pwd.html:9
|
#: events/templates/events/event_pwd.html:9
|
||||||
|
@ -438,12 +462,8 @@ msgstr "Équipe"
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr "Personne n'a encore gagné de point, allez-vous être le premier ?"
|
msgstr "Personne n'a encore gagné de point, allez-vous être le premier ?"
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr "Gérer mon équipe"
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr "Mauvais mot de passe saisi."
|
msgstr "Mauvais mot de passe saisi."
|
||||||
|
|
||||||
|
@ -455,7 +475,7 @@ msgstr "Cet événement est protégé par un mot de passe"
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr "Vous devez saisir le mot de passe de l'événement pour y avoir accès."
|
msgstr "Vous devez saisir le mot de passe de l'événement pour y avoir accès."
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr "Événements"
|
msgstr "Événements"
|
||||||
|
|
||||||
|
@ -467,11 +487,11 @@ msgstr "Voir plus"
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr "Pas d'évènement disponible."
|
msgstr "Pas d'évènement disponible."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr "Cette équipe n'existe pas."
|
msgstr "Cette équipe n'existe pas."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr "Taille maximale atteinte."
|
msgstr "Taille maximale atteinte."
|
||||||
|
|
||||||
|
@ -479,71 +499,91 @@ msgstr "Taille maximale atteinte."
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr "Mot de passe de l'équipe"
|
msgstr "Mot de passe de l'équipe"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Appliquer"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Membres"
|
msgstr "Membres"
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr "Quitte l'équipe"
|
msgstr "Quitte l'équipe"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr "Il semble que cette équipe n'a pas encore résolu de challenge..."
|
msgstr "Il semble que cette équipe n'a pas encore résolu de challenge..."
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr "Il n'y a pas d'article disponible."
|
msgstr "Il n'y a pas d'article disponible."
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr "Derniers challenges ajoutés"
|
msgstr "Derniers challenges ajoutés"
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:58
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Points"
|
#| msgid "Points"
|
||||||
msgid "points"
|
msgid "points"
|
||||||
msgstr "Points"
|
msgstr "Points"
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
#: home/templates/home/home.html:62
|
||||||
msgid "No ctf available."
|
msgid "No ctf available."
|
||||||
msgstr "Pas de challenge disponible"
|
msgstr "Pas de challenge disponible"
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
#: home/templates/home/home.html:66
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Username"
|
#| msgid "Username"
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Pseudo"
|
msgstr "Pseudo"
|
||||||
|
|
||||||
#: project/settings.py:115
|
#: project/settings.py:116
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Anglais"
|
msgstr "Anglais"
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:117
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Allemand"
|
msgstr "Allemand"
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:118
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Français"
|
msgstr "Français"
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Russe"
|
msgstr "Russe"
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr "Début"
|
msgstr "Début"
|
||||||
|
@ -568,19 +608,19 @@ msgstr "Fin"
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr "Classement"
|
msgstr "Classement"
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr "Inscription"
|
msgstr "Inscription"
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr "Soutenez nous via Patreon !"
|
msgstr "Soutenez nous via Patreon !"
|
||||||
|
|
||||||
|
@ -624,14 +664,20 @@ msgstr ""
|
||||||
msgid "Reset"
|
msgid "Reset"
|
||||||
msgstr "Réinitialiser"
|
msgstr "Réinitialiser"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Error: you're not registered to this event, so you can't register scores, "
|
||||||
|
#~ "fucking logic."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Erreur : vous n'êtes pas inscrit à cet événement, vous ne pouvez donc pas "
|
||||||
|
#~ "enregistrer de scores,C'est putain de logique."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~| msgid "Manage my team"
|
||||||
|
#~ msgid "Manage team"
|
||||||
|
#~ msgstr "Gérer mon équipe"
|
||||||
|
|
||||||
#~ msgid "Start at"
|
#~ msgid "Start at"
|
||||||
#~ msgstr "Début"
|
#~ msgstr "Début"
|
||||||
|
|
||||||
#~ msgid "End at"
|
#~ msgid "End at"
|
||||||
#~ msgstr "Fin"
|
#~ msgstr "Fin"
|
||||||
|
|
||||||
#~ msgid "Disconnect Discord"
|
|
||||||
#~ msgstr "Déconnecter Discord"
|
|
||||||
|
|
||||||
#~ msgid "Connect Discord"
|
|
||||||
#~ msgstr "Connecter Discord"
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -41,16 +41,16 @@ msgstr ""
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
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:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
|
@ -61,21 +61,32 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
msgid " Apply"
|
||||||
msgid "Apply"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
|
@ -84,13 +95,13 @@ msgstr ""
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
msgid "Delete my account"
|
msgid " Delete my account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
|
@ -102,7 +113,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:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
|
@ -139,8 +150,8 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -214,69 +225,63 @@ msgstr ""
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:26
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:51
|
#: events/templates/events/ctf_info.html:45
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:38
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -296,60 +301,71 @@ msgstr ""
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
#: events/templates/events/create_team.html:42
|
||||||
#: events/templates/events/event_info.html:113
|
#: events/templates/events/event_info.html:113
|
||||||
#: events/templates/events/event_pwd.html:36
|
#: events/templates/events/event_pwd.html:36
|
||||||
#: events/templates/events/join_team.html:46
|
#: events/templates/events/join_team.html:47
|
||||||
msgid "Starts at"
|
msgid "Starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
|
msgid "Manage my team"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:48
|
||||||
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
msgid "Join Team"
|
msgid "Join Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:53
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -357,30 +373,36 @@ msgstr ""
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
#: events/templates/events/event_info.html:12
|
|
||||||
#: events/templates/events/event_pwd.html:18
|
|
||||||
msgid "You're already registered to this event."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
#: events/templates/events/event_info.html:18
|
||||||
msgid "This event is over."
|
msgid "This event is over."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
#: events/templates/events/ctf_info.html:30
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
"fucking logic."
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:12
|
||||||
|
#: events/templates/events/event_pwd.html:18
|
||||||
|
msgid "You're already registered to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
|
@ -412,12 +434,8 @@ msgstr ""
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -429,7 +447,7 @@ msgstr ""
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -441,11 +459,11 @@ msgstr ""
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -453,67 +471,87 @@ msgstr ""
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:58
|
||||||
msgid "points"
|
msgid "points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
#: home/templates/home/home.html:62
|
||||||
msgid "No ctf available."
|
msgid "No ctf available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
#: home/templates/home/home.html:66
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:115
|
#: project/settings.py:116
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:117
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:118
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -538,19 +576,19 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,644 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:8
|
||||||
|
msgid "Delete account"
|
||||||
|
msgstr "アカウント削除"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:11
|
||||||
|
msgid "Please confirm your password to delete your account."
|
||||||
|
msgstr "アカウントを削除するには、パスワードを入力してください。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:12
|
||||||
|
msgid "Deleted accounts cannot be recovered."
|
||||||
|
msgstr "削除されたアカウントは復元できません。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:15
|
||||||
|
msgid "Password inccorect."
|
||||||
|
msgstr "パスワードが正しくありません。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:17
|
||||||
|
msgid "Your account has been deleted."
|
||||||
|
msgstr "あなたのアカウントは削除されました。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/delete.html:22
|
||||||
|
#: accounts/templates/accounts/login.html:19
|
||||||
|
#: accounts/templates/accounts/register.html:23
|
||||||
|
#: events/templates/events/create_team.html:27
|
||||||
|
#: events/templates/events/join_team.html:32
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "パスワード"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:21
|
||||||
|
#: accounts/templates/accounts/login.html:18
|
||||||
|
#: accounts/templates/accounts/register.html:22
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
|
#: events/templates/events/ctf_info.html:65
|
||||||
|
#: events/templates/events/event_info.html:64
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "ユーザー名"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:25
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Eメール"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:30
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
|
#: events/templates/events/ctf_info.html:66
|
||||||
|
#: events/templates/events/event_info.html:65
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
|
msgid "Website"
|
||||||
|
msgstr "ウェブサイト"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:36
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Apply"
|
||||||
|
msgid " Apply"
|
||||||
|
msgstr "適用する"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Delete account"
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr "アカウント削除"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
|
#: accounts/templates/accounts/profile.html:46
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
|
#: events/templates/events/event_info.html:66
|
||||||
|
#: events/templates/events/event_info.html:89
|
||||||
|
#: events/templates/events/manage_team.html:40
|
||||||
|
#: events/templates/events/team.html:45
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:15
|
||||||
|
msgid "Score"
|
||||||
|
msgstr "スコア"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:78
|
||||||
|
#: accounts/templates/accounts/profile.html:60
|
||||||
|
msgid "Registered since"
|
||||||
|
msgstr "登録日"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:84
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Delete my account"
|
||||||
|
msgid " Delete my account"
|
||||||
|
msgstr "アカウント削除"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/login.html:13
|
||||||
|
msgid "Please, verify your infos."
|
||||||
|
msgstr "あなたの情報を確認してください。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/login.html:22
|
||||||
|
msgid "Reset password"
|
||||||
|
msgstr "パスワード再設定"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/login.html:31
|
||||||
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
|
#: templates/registration/password_reset_complete.html:18
|
||||||
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
|
#: templates/registration/password_reset_done.html:18
|
||||||
|
#: templates/registration/password_reset_form.html:26
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "ログイン"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/login.html:32
|
||||||
|
#: accounts/templates/accounts/register.html:37
|
||||||
|
#: templates/registration/password_reset_complete.html:19
|
||||||
|
#: templates/registration/password_reset_confirm.html:39
|
||||||
|
#: templates/registration/password_reset_done.html:19
|
||||||
|
#: templates/registration/password_reset_form.html:27
|
||||||
|
msgid "Sign up"
|
||||||
|
msgstr "サインアップ"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:10
|
||||||
|
msgid "Challenges Solved by"
|
||||||
|
msgstr "解いた課題"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:21
|
||||||
|
#: events/templates/events/team.html:20
|
||||||
|
msgid "Challenge Name"
|
||||||
|
msgstr "課題名"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:22
|
||||||
|
#: events/templates/events/team.html:21
|
||||||
|
msgid "Category"
|
||||||
|
msgstr "カテゴリー"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:23
|
||||||
|
#: events/templates/events/team.html:22
|
||||||
|
msgid "Points"
|
||||||
|
msgstr "ポイント"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:24
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
|
#: events/templates/events/ctf_info.html:67
|
||||||
|
#: events/templates/events/team.html:23
|
||||||
|
msgid "Date"
|
||||||
|
msgstr "日付"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:39
|
||||||
|
msgid "It seems that this user has not solved any challenge yet..."
|
||||||
|
msgstr "まだ何も課題を解いていないようです..."
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:47
|
||||||
|
#: events/templates/events/event_info.html:63
|
||||||
|
#: events/templates/events/event_info.html:87
|
||||||
|
#: events/templates/events/manage_team.html:41
|
||||||
|
#: events/templates/events/team.html:46
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:12
|
||||||
|
msgid "Rank"
|
||||||
|
msgstr "ラング"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:56
|
||||||
|
msgid "Status: Member"
|
||||||
|
msgstr "ステータス: メンバー"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:58
|
||||||
|
msgid "Status: Visitor"
|
||||||
|
msgstr "ステータス: 訪問者"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/profile.html:64
|
||||||
|
#: events/templates/events/team.html:57
|
||||||
|
msgid "Categories stats"
|
||||||
|
msgstr "カテゴリー別の統計"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/register.html:13
|
||||||
|
msgid "Welcome !"
|
||||||
|
msgstr "ようこそ!"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/register.html:14
|
||||||
|
msgid "Your account has been created."
|
||||||
|
msgstr "アカウントが作成されました。"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/register.html:25
|
||||||
|
msgid "Personal website"
|
||||||
|
msgstr "個人サイト"
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/register.html:26
|
||||||
|
#: events/templates/events/event_info.html:119
|
||||||
|
msgid "Register"
|
||||||
|
msgstr "登録"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:33
|
||||||
|
msgid "Your account was inactive."
|
||||||
|
msgstr "アカウントは無効です。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:52
|
||||||
|
msgid ""
|
||||||
|
"The password must contain at least one letter and at least one digit or "
|
||||||
|
"punctuation character."
|
||||||
|
msgstr ""
|
||||||
|
"パスワードには、少なくとも1つの文字と、1つの数字または記号を含める必要があり"
|
||||||
|
"ます。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:54
|
||||||
|
msgid "A user with that email already exists."
|
||||||
|
msgstr "そのEメールを持つユーザーがすでに存在しています。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:67
|
||||||
|
msgid "A user with that username already exists."
|
||||||
|
msgstr "そのユーザー名はすでに存在しています。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:95
|
||||||
|
msgid "Email already taken."
|
||||||
|
msgstr "Eメールはすでに受信済みです。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:101
|
||||||
|
msgid "Username already taken."
|
||||||
|
msgstr "ユーザー名はすでに使用されています。"
|
||||||
|
|
||||||
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
|
msgid "Updated."
|
||||||
|
msgstr "更新しました。"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
|
#: events/templates/events/ctf_info.html:12
|
||||||
|
msgid "Published date"
|
||||||
|
msgstr "掲載日"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
|
msgid "Challenge is not yet available."
|
||||||
|
msgstr "課題はまだ利用できません。"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
|
#: events/templates/events/ctf_info.html:24
|
||||||
|
msgid "Congratulation !"
|
||||||
|
msgstr "おめでとうございます!"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
|
#: events/templates/events/ctf_info.html:26
|
||||||
|
msgid "Already flagged"
|
||||||
|
msgstr "すでにフラグが立っています"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
|
#: events/templates/events/ctf_info.html:36
|
||||||
|
#: events/templates/events/ctf_info.html:45
|
||||||
|
msgid "Start the challenge"
|
||||||
|
msgstr "チャレンジ開始"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
|
#: events/templates/events/ctf_info.html:38
|
||||||
|
#: events/templates/events/ctf_info.html:47
|
||||||
|
msgid "Download"
|
||||||
|
msgstr "ダウンロード"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
|
#: events/templates/events/ctf_info.html:42
|
||||||
|
msgid "Wrong flag ! You can do it !"
|
||||||
|
msgstr "フラグが違います!あなたならできる!"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
|
#: events/templates/events/ctf_info.html:60
|
||||||
|
msgid "Solved by"
|
||||||
|
msgstr "解答者"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
|
#: events/templates/events/ctf_info.html:90
|
||||||
|
msgid "Nobody has solved this challenge yet."
|
||||||
|
msgstr "まだ誰もこの課題を解いていません。"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
|
#: events/templates/events/ctf_info.html:97
|
||||||
|
msgid "Author"
|
||||||
|
msgstr "作成者"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
|
#: events/templates/events/ctf_info.html:98
|
||||||
|
msgid "Point reward"
|
||||||
|
msgstr "獲得ポイント"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctfs_list.html:14
|
||||||
|
msgid "Solved"
|
||||||
|
msgstr "解決済み"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctfs_list.html:37
|
||||||
|
msgid "No ctf available for this category."
|
||||||
|
msgstr "このカテゴリーにはCTFがありません。"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctfs_list.html:42
|
||||||
|
msgid "Categories"
|
||||||
|
msgstr "カテゴリー"
|
||||||
|
|
||||||
|
#: ctfs/templates/ctfs/ctfs_list.html:48 templates/base.html:54
|
||||||
|
msgid "No category available."
|
||||||
|
msgstr "該当するカテゴリーはありません。"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:10
|
||||||
|
#: events/templates/events/join_team.html:10
|
||||||
|
msgid "This event starts at"
|
||||||
|
msgstr "このイベントは始まります。"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:17
|
||||||
|
#: events/templates/events/join_team.html:17
|
||||||
|
msgid "You need to be registered to the event."
|
||||||
|
msgstr "このイベントに登録する必要があります。"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
|
msgid "Name already taken."
|
||||||
|
msgstr "名前はすでに使用されています。"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:26
|
||||||
|
#: events/templates/events/join_team.html:31
|
||||||
|
#: events/templates/events/manage_team.html:22
|
||||||
|
msgid "Team name"
|
||||||
|
msgstr "チーム名"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:28
|
||||||
|
#: events/templates/events/create_team.html:49
|
||||||
|
#: events/templates/events/join_team.html:54
|
||||||
|
msgid "Create Team"
|
||||||
|
msgstr "チーム作成"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:33
|
||||||
|
#: events/templates/events/event_pwd.html:28
|
||||||
|
#: events/templates/events/join_team.html:38
|
||||||
|
msgid "You need to be logged to access this event."
|
||||||
|
msgstr "このイベントにアクセスするには、ログインする必要があります。"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:42
|
||||||
|
#: events/templates/events/event_info.html:113
|
||||||
|
#: events/templates/events/event_pwd.html:36
|
||||||
|
#: events/templates/events/join_team.html:47
|
||||||
|
msgid "Starts at"
|
||||||
|
msgstr "開始日"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:43
|
||||||
|
#: events/templates/events/event_info.html:114
|
||||||
|
#: events/templates/events/event_pwd.html:37
|
||||||
|
#: events/templates/events/join_team.html:48
|
||||||
|
msgid "Ends at"
|
||||||
|
msgstr "終了日"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:47
|
||||||
|
#: events/templates/events/event_info.html:129
|
||||||
|
#: events/templates/events/join_team.html:52
|
||||||
|
msgid "Manage my team"
|
||||||
|
msgstr "自分のチームを管理する"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:48
|
||||||
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
|
msgid "Join Team"
|
||||||
|
msgstr "チームに参加する"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:53
|
||||||
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr "自動マッチング"
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
|
msgid "Find me a team !"
|
||||||
|
msgstr "チームを見つけよう!"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:10
|
||||||
|
msgid "Event"
|
||||||
|
msgstr "イベント"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:18
|
||||||
|
msgid ""
|
||||||
|
"No translation available. Please try another language (English or French)."
|
||||||
|
msgstr "翻訳はありません。他の言語(英語またはフランス語)をお試しください。"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:28
|
||||||
|
#: events/templates/events/event_info.html:18
|
||||||
|
msgid "This event is over."
|
||||||
|
msgstr "このイベントは終了しました。"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:30
|
||||||
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
|
msgstr "リクエストの処理中にエラーが発生しました(無効なフォーム)"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr "フラグを送信する前に、イベントへの登録が必要です。"
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
|
msgid ""
|
||||||
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
"これはチームイベントです。フラグを送信する前に、チームを作成または参加をして"
|
||||||
|
"ください。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr "申し込みは終了しました。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:12
|
||||||
|
#: events/templates/events/event_pwd.html:18
|
||||||
|
msgid "You're already registered to this event."
|
||||||
|
msgstr "すでにこのイベントに登録しています。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:20
|
||||||
|
#: events/templates/events/event_pwd.html:9
|
||||||
|
msgid "This event start at"
|
||||||
|
msgstr "このイベントの開始時間"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:30
|
||||||
|
msgid "Challenges"
|
||||||
|
msgstr "課題"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:47
|
||||||
|
msgid "No challenges available."
|
||||||
|
msgstr "チャレンジできません。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:51
|
||||||
|
msgid "The event has not started yet."
|
||||||
|
msgstr "イベントはまだ始まっていません。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:57
|
||||||
|
msgid "ScoreBoard"
|
||||||
|
msgstr "スコアボード"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:88
|
||||||
|
msgid "Team"
|
||||||
|
msgstr "チーム"
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:106
|
||||||
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
|
msgstr "まだ誰もポイントを獲得していませんが、あなたが最初に獲得しますか?"
|
||||||
|
|
||||||
|
#: events/templates/events/event_pwd.html:15
|
||||||
|
#: events/templates/events/join_team.html:22
|
||||||
|
msgid "Wrong password submited."
|
||||||
|
msgstr "パスワードが違います。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_pwd.html:20
|
||||||
|
msgid "This event is password protected"
|
||||||
|
msgstr "このイベントはパスワードで保護されています。"
|
||||||
|
|
||||||
|
#: events/templates/events/event_pwd.html:21
|
||||||
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
|
msgstr ""
|
||||||
|
"このイベントにアクセスするには、イベントのパスワードを送信する必要がありま"
|
||||||
|
"す。"
|
||||||
|
|
||||||
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
|
msgid "Events"
|
||||||
|
msgstr "イベント"
|
||||||
|
|
||||||
|
#: events/templates/events/events_list.html:38
|
||||||
|
msgid "See more"
|
||||||
|
msgstr "もっと見る"
|
||||||
|
|
||||||
|
#: events/templates/events/events_list.html:44
|
||||||
|
msgid "No events available."
|
||||||
|
msgstr "該当するイベントはありません。"
|
||||||
|
|
||||||
|
#: events/templates/events/join_team.html:20
|
||||||
|
msgid "Team does not exist."
|
||||||
|
msgstr "チームが存在しません。"
|
||||||
|
|
||||||
|
#: events/templates/events/join_team.html:24
|
||||||
|
msgid "Maximum size reached."
|
||||||
|
msgstr "最大サイズに達しました。"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:26
|
||||||
|
msgid "Team password"
|
||||||
|
msgstr "チームのパスワード"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "適用する"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:44
|
||||||
|
#: events/templates/events/team.html:49
|
||||||
|
msgid "Members"
|
||||||
|
msgstr "メンバー"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:52
|
||||||
|
msgid "Leave Team"
|
||||||
|
msgstr "チームを離れる"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr "自動マッチングにする"
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr "自動マッチングをやめる"
|
||||||
|
|
||||||
|
#: events/templates/events/team.html:38
|
||||||
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
|
msgstr "このチームは、まだ何も課題を解いていないようです..."
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:21
|
||||||
|
msgid "Weekly Top 5"
|
||||||
|
msgstr "週間トップ5"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:48
|
||||||
|
msgid "No article available."
|
||||||
|
msgstr "記事はありません。"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:53
|
||||||
|
msgid "Latest challenges added"
|
||||||
|
msgstr "最新の追加課題"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:58
|
||||||
|
msgid "points"
|
||||||
|
msgstr "ポイント"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:62
|
||||||
|
msgid "No ctf available."
|
||||||
|
msgstr "取り組めるctfはありません。"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:66
|
||||||
|
msgid "Latest Flags"
|
||||||
|
msgstr "最新のフラグ"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:80
|
||||||
|
msgid "Flags"
|
||||||
|
msgstr "フラグ"
|
||||||
|
|
||||||
|
#: home/templates/home/home.html:86
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "ユーザー"
|
||||||
|
|
||||||
|
#: project/settings.py:116
|
||||||
|
msgid "English"
|
||||||
|
msgstr "英語"
|
||||||
|
|
||||||
|
#: project/settings.py:117
|
||||||
|
msgid "German"
|
||||||
|
msgstr "ドイツ語"
|
||||||
|
|
||||||
|
#: project/settings.py:118
|
||||||
|
msgid "French"
|
||||||
|
msgstr "フランス語"
|
||||||
|
|
||||||
|
#: project/settings.py:119
|
||||||
|
msgid "Russian"
|
||||||
|
msgstr "ロシア語"
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr "日本語"
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr "スペイン語"
|
||||||
|
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
|
msgid "First"
|
||||||
|
msgstr "最初"
|
||||||
|
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:39
|
||||||
|
msgid "Previous"
|
||||||
|
msgstr "前"
|
||||||
|
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:43
|
||||||
|
msgid "Page "
|
||||||
|
msgstr "ページ"
|
||||||
|
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:47
|
||||||
|
msgid "Next"
|
||||||
|
msgstr "次"
|
||||||
|
|
||||||
|
#: scoreboard/templates/scoreboard/scoreboard.html:48
|
||||||
|
msgid "Last"
|
||||||
|
msgstr "最後"
|
||||||
|
|
||||||
|
#: templates/base.html:59
|
||||||
|
msgid "Scoreboard"
|
||||||
|
msgstr "スコアボード"
|
||||||
|
|
||||||
|
#: templates/base.html:64
|
||||||
|
msgid "Resources"
|
||||||
|
msgstr "リソース"
|
||||||
|
|
||||||
|
#: templates/base.html:93
|
||||||
|
msgid "Logout"
|
||||||
|
msgstr "ログアウト"
|
||||||
|
|
||||||
|
#: templates/base.html:100
|
||||||
|
msgid "Sign Up"
|
||||||
|
msgstr "サインアップ"
|
||||||
|
|
||||||
|
#: templates/base.html:135
|
||||||
|
msgid "Become a Patron!"
|
||||||
|
msgstr "支援者になる!"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_complete.html:11
|
||||||
|
msgid "Your new password has been set."
|
||||||
|
msgstr "新しいパスワードが設定されました。"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:20
|
||||||
|
msgid "Your password can’t be too similar to your other personal information."
|
||||||
|
msgstr "パスワードは、自身の個人情報と似すぎていてはいけません。"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:21
|
||||||
|
msgid "Your password must contain at least 8 characters."
|
||||||
|
msgstr "パスワードには8文字以上が必要です。"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:22
|
||||||
|
msgid "Your password can’t be a commonly used password."
|
||||||
|
msgstr "パスワードは、一般的に使われているものを使用しないでください。"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:23
|
||||||
|
msgid "Your password can’t be entirely numeric."
|
||||||
|
msgstr "パスワードはすべて数字にはできません。"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:26
|
||||||
|
msgid "Confirm"
|
||||||
|
msgstr "確認"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_confirm.html:28
|
||||||
|
msgid "Submit"
|
||||||
|
msgstr "送信"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_done.html:11
|
||||||
|
msgid ""
|
||||||
|
"We've emailed you instructions for setting your password. You should receive "
|
||||||
|
"the email shortly!"
|
||||||
|
msgstr ""
|
||||||
|
"パスワードの設定方法をメールでお送りしました。まもなくメールが届くはずです!"
|
||||||
|
|
||||||
|
#: templates/registration/password_reset_form.html:16
|
||||||
|
msgid "Reset"
|
||||||
|
msgstr "リセット"
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -43,16 +43,16 @@ msgstr ""
|
||||||
#: accounts/templates/accounts/delete.html:22
|
#: accounts/templates/accounts/delete.html:22
|
||||||
#: accounts/templates/accounts/login.html:19
|
#: accounts/templates/accounts/login.html:19
|
||||||
#: accounts/templates/accounts/register.html:23
|
#: accounts/templates/accounts/register.html:23
|
||||||
#: events/templates/events/create_team.html:26
|
#: events/templates/events/create_team.html:27
|
||||||
#: events/templates/events/join_team.html:31
|
#: events/templates/events/join_team.html:32
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
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:61 ctfs/templates/ctfs/ctfs_list.html:12
|
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
|
||||||
#: events/templates/events/ctf_info.html:71
|
#: events/templates/events/ctf_info.html:65
|
||||||
#: events/templates/events/event_info.html:64
|
#: events/templates/events/event_info.html:64
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
#: scoreboard/templates/scoreboard/scoreboard.html:13
|
||||||
msgid "Username"
|
msgid "Username"
|
||||||
|
@ -63,21 +63,32 @@ msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:30
|
#: accounts/templates/accounts/edit.html:30
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:62
|
#: ctfs/templates/ctfs/ctf_info.html:64
|
||||||
#: events/templates/events/ctf_info.html:72
|
#: events/templates/events/ctf_info.html:66
|
||||||
#: events/templates/events/event_info.html:65
|
#: events/templates/events/event_info.html:65
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
#: scoreboard/templates/scoreboard/scoreboard.html:14
|
||||||
msgid "Website"
|
msgid "Website"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:36
|
#: accounts/templates/accounts/edit.html:36
|
||||||
#: events/templates/events/manage_team.html:29
|
msgid " Apply"
|
||||||
msgid "Apply"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:47
|
#: accounts/templates/accounts/edit.html:45
|
||||||
|
msgid "Connected accounts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:53
|
||||||
|
msgid "Disconnect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:59
|
||||||
|
msgid "Connect Discord"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: accounts/templates/accounts/edit.html:70
|
||||||
#: accounts/templates/accounts/profile.html:46
|
#: accounts/templates/accounts/profile.html:46
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
|
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
|
||||||
#: events/templates/events/event_info.html:66
|
#: events/templates/events/event_info.html:66
|
||||||
#: events/templates/events/event_info.html:89
|
#: events/templates/events/event_info.html:89
|
||||||
#: events/templates/events/manage_team.html:40
|
#: events/templates/events/manage_team.html:40
|
||||||
|
@ -86,13 +97,13 @@ msgstr ""
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
msgstr "счет"
|
msgstr "счет"
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:55
|
#: accounts/templates/accounts/edit.html:78
|
||||||
#: accounts/templates/accounts/profile.html:60
|
#: accounts/templates/accounts/profile.html:60
|
||||||
msgid "Registered since"
|
msgid "Registered since"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/edit.html:61
|
#: accounts/templates/accounts/edit.html:84
|
||||||
msgid "Delete my account"
|
msgid " Delete my account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/login.html:13
|
#: accounts/templates/accounts/login.html:13
|
||||||
|
@ -104,7 +115,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:103
|
#: accounts/templates/accounts/register.html:38 templates/base.html:97
|
||||||
#: templates/registration/password_reset_complete.html:18
|
#: templates/registration/password_reset_complete.html:18
|
||||||
#: templates/registration/password_reset_confirm.html:38
|
#: templates/registration/password_reset_confirm.html:38
|
||||||
#: templates/registration/password_reset_done.html:18
|
#: templates/registration/password_reset_done.html:18
|
||||||
|
@ -141,8 +152,8 @@ msgid "Points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/templates/accounts/profile.html:24
|
#: accounts/templates/accounts/profile.html:24
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:64
|
#: ctfs/templates/ctfs/ctf_info.html:66
|
||||||
#: events/templates/events/ctf_info.html:73
|
#: events/templates/events/ctf_info.html:67
|
||||||
#: events/templates/events/team.html:23
|
#: events/templates/events/team.html:23
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -216,71 +227,65 @@ msgstr ""
|
||||||
msgid "Username already taken."
|
msgid "Username already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: accounts/views/views.py:105 events/views/teams.py:122
|
#: accounts/views/views.py:105 events/views/teams.py:124
|
||||||
msgid "Updated."
|
msgid "Updated."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:10
|
#: ctfs/templates/ctfs/ctf_info.html:12
|
||||||
#: events/templates/events/ctf_info.html:12
|
#: events/templates/events/ctf_info.html:12
|
||||||
msgid "Published date"
|
msgid "Published date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:14
|
#: ctfs/templates/ctfs/ctf_info.html:16
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "No article available."
|
#| msgid "No article available."
|
||||||
msgid "Challenge is not yet available."
|
msgid "Challenge is not yet available."
|
||||||
msgstr "Нет доступных статей."
|
msgstr "Нет доступных статей."
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:21
|
#: ctfs/templates/ctfs/ctf_info.html:29
|
||||||
#: events/templates/events/ctf_info.html:18 home/templates/home/home.html:46
|
#: events/templates/events/ctf_info.html:24
|
||||||
msgid ""
|
|
||||||
"No translation available. Please try another language (English or French)."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:27
|
|
||||||
#: events/templates/events/ctf_info.html:32
|
|
||||||
msgid "Congratulation !"
|
msgid "Congratulation !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:29
|
#: ctfs/templates/ctfs/ctf_info.html:31
|
||||||
#: events/templates/events/ctf_info.html:34
|
#: events/templates/events/ctf_info.html:26
|
||||||
msgid "Already flagged"
|
msgid "Already flagged"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
|
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
||||||
#: events/templates/events/ctf_info.html:42
|
#: events/templates/events/ctf_info.html:36
|
||||||
#: events/templates/events/ctf_info.html:51
|
#: events/templates/events/ctf_info.html:45
|
||||||
msgid "Start the challenge"
|
msgid "Start the challenge"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
|
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
|
||||||
#: events/templates/events/ctf_info.html:44
|
#: events/templates/events/ctf_info.html:38
|
||||||
#: events/templates/events/ctf_info.html:53
|
#: events/templates/events/ctf_info.html:47
|
||||||
msgid "Download"
|
msgid "Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:37
|
#: ctfs/templates/ctfs/ctf_info.html:39
|
||||||
#: events/templates/events/ctf_info.html:48
|
#: events/templates/events/ctf_info.html:42
|
||||||
msgid "Wrong flag ! You can do it !"
|
msgid "Wrong flag ! You can do it !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:56
|
#: ctfs/templates/ctfs/ctf_info.html:58
|
||||||
#: events/templates/events/ctf_info.html:66
|
#: events/templates/events/ctf_info.html:60
|
||||||
msgid "Solved by"
|
msgid "Solved by"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:80
|
#: ctfs/templates/ctfs/ctf_info.html:82
|
||||||
#: events/templates/events/ctf_info.html:96
|
#: events/templates/events/ctf_info.html:90
|
||||||
msgid "Nobody has solved this challenge yet."
|
msgid "Nobody has solved this challenge yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:87
|
#: ctfs/templates/ctfs/ctf_info.html:89
|
||||||
#: events/templates/events/ctf_info.html:103
|
#: events/templates/events/ctf_info.html:97
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ctfs/templates/ctfs/ctf_info.html:88
|
#: ctfs/templates/ctfs/ctf_info.html:90
|
||||||
#: events/templates/events/ctf_info.html:104
|
#: events/templates/events/ctf_info.html:98
|
||||||
msgid "Point reward"
|
msgid "Point reward"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -300,60 +305,71 @@ msgstr ""
|
||||||
msgid "No category available."
|
msgid "No category available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:9
|
#: events/templates/events/create_team.html:10
|
||||||
#: events/templates/events/join_team.html:9
|
#: events/templates/events/join_team.html:10
|
||||||
msgid "This event starts at"
|
msgid "This event starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:16
|
#: events/templates/events/create_team.html:17
|
||||||
#: events/templates/events/join_team.html:16
|
#: events/templates/events/join_team.html:17
|
||||||
msgid "You need to be registered to the event."
|
msgid "You need to be registered to the event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:19 events/views/teams.py:118
|
#: events/templates/events/create_team.html:20 events/views/teams.py:120
|
||||||
msgid "Name already taken."
|
msgid "Name already taken."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:25
|
#: events/templates/events/create_team.html:26
|
||||||
#: events/templates/events/join_team.html:30
|
#: events/templates/events/join_team.html:31
|
||||||
#: events/templates/events/manage_team.html:22
|
#: events/templates/events/manage_team.html:22
|
||||||
msgid "Team name"
|
msgid "Team name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:27
|
#: events/templates/events/create_team.html:28
|
||||||
#: events/templates/events/create_team.html:46
|
#: events/templates/events/create_team.html:49
|
||||||
#: events/templates/events/join_team.html:52
|
#: events/templates/events/join_team.html:54
|
||||||
msgid "Create Team"
|
msgid "Create Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:32
|
#: events/templates/events/create_team.html:33
|
||||||
#: events/templates/events/event_pwd.html:28
|
#: events/templates/events/event_pwd.html:28
|
||||||
#: events/templates/events/join_team.html:37
|
#: events/templates/events/join_team.html:38
|
||||||
msgid "You need to be logged to access this event."
|
msgid "You need to be logged to access this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:41
|
#: events/templates/events/create_team.html:42
|
||||||
#: events/templates/events/event_info.html:113
|
#: events/templates/events/event_info.html:113
|
||||||
#: events/templates/events/event_pwd.html:36
|
#: events/templates/events/event_pwd.html:36
|
||||||
#: events/templates/events/join_team.html:46
|
#: events/templates/events/join_team.html:47
|
||||||
msgid "Starts at"
|
msgid "Starts at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:42
|
#: events/templates/events/create_team.html:43
|
||||||
#: events/templates/events/event_info.html:114
|
#: events/templates/events/event_info.html:114
|
||||||
#: events/templates/events/event_pwd.html:37
|
#: events/templates/events/event_pwd.html:37
|
||||||
#: events/templates/events/join_team.html:47
|
#: events/templates/events/join_team.html:48
|
||||||
msgid "Ends at"
|
msgid "Ends at"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:47
|
#: events/templates/events/create_team.html:47
|
||||||
#: events/templates/events/join_team.html:32
|
#: events/templates/events/event_info.html:129
|
||||||
#: events/templates/events/join_team.html:51
|
#: events/templates/events/join_team.html:52
|
||||||
|
msgid "Manage my team"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:48
|
||||||
|
#: events/templates/events/join_team.html:33
|
||||||
|
#: events/templates/events/join_team.html:53
|
||||||
msgid "Join Team"
|
msgid "Join Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/create_team.html:54
|
#: events/templates/events/create_team.html:53
|
||||||
#: events/templates/events/join_team.html:59
|
#: events/templates/events/join_team.html:58
|
||||||
|
msgid "Auto-matching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/create_team.html:57
|
||||||
|
#: events/templates/events/join_team.html:62
|
||||||
msgid "Find me a team !"
|
msgid "Find me a team !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -361,30 +377,36 @@ msgstr ""
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:25
|
#: events/templates/events/ctf_info.html:18
|
||||||
#: events/templates/events/event_info.html:9
|
msgid ""
|
||||||
msgid "Subscriptions is over."
|
"No translation available. Please try another language (English or French)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:28
|
#: events/templates/events/ctf_info.html:28
|
||||||
#: events/templates/events/event_info.html:12
|
|
||||||
#: events/templates/events/event_pwd.html:18
|
|
||||||
msgid "You're already registered to this event."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:36
|
|
||||||
#: events/templates/events/event_info.html:18
|
#: events/templates/events/event_info.html:18
|
||||||
msgid "This event is over."
|
msgid "This event is over."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:38
|
#: events/templates/events/ctf_info.html:30
|
||||||
msgid "Error while processing your request. (Invalid Form)"
|
msgid "Error while processing your request. (Invalid Form)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/ctf_info.html:40
|
#: events/templates/events/ctf_info.html:32
|
||||||
|
msgid "You must register to the event before submitting flags."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/ctf_info.html:34
|
||||||
msgid ""
|
msgid ""
|
||||||
"Error: you're not registered to this event, so you can't register scores, "
|
"This is a team event, please create or join a team before submitting flags."
|
||||||
"fucking logic."
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:9
|
||||||
|
msgid "Subscriptions is over."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/event_info.html:12
|
||||||
|
#: events/templates/events/event_pwd.html:18
|
||||||
|
msgid "You're already registered to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:20
|
#: events/templates/events/event_info.html:20
|
||||||
|
@ -420,12 +442,8 @@ msgstr ""
|
||||||
msgid "No one have earn point yet, you gonna be the first ?"
|
msgid "No one have earn point yet, you gonna be the first ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/event_info.html:129
|
|
||||||
msgid "Manage my team"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: events/templates/events/event_pwd.html:15
|
#: events/templates/events/event_pwd.html:15
|
||||||
#: events/templates/events/join_team.html:21
|
#: events/templates/events/join_team.html:22
|
||||||
msgid "Wrong password submited."
|
msgid "Wrong password submited."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -437,7 +455,7 @@ msgstr ""
|
||||||
msgid "You need to submit the event password to gain access to this event."
|
msgid "You need to submit the event password to gain access to this event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/events_list.html:6 templates/base.html:63
|
#: events/templates/events/events_list.html:6 templates/base.html:61
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -451,11 +469,11 @@ msgstr ""
|
||||||
msgid "No events available."
|
msgid "No events available."
|
||||||
msgstr "Нет доступных статей."
|
msgstr "Нет доступных статей."
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:19
|
#: events/templates/events/join_team.html:20
|
||||||
msgid "Team does not exist."
|
msgid "Team does not exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/join_team.html:23
|
#: events/templates/events/join_team.html:24
|
||||||
msgid "Maximum size reached."
|
msgid "Maximum size reached."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -463,67 +481,87 @@ msgstr ""
|
||||||
msgid "Team password"
|
msgid "Team password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:29
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:44
|
#: events/templates/events/manage_team.html:44
|
||||||
#: events/templates/events/team.html:49
|
#: events/templates/events/team.html:49
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/manage_team.html:51
|
#: events/templates/events/manage_team.html:52
|
||||||
msgid "Leave Team"
|
msgid "Leave Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:59
|
||||||
|
msgid "Open to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: events/templates/events/manage_team.html:66
|
||||||
|
msgid "Close to automatching"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: events/templates/events/team.html:38
|
#: events/templates/events/team.html:38
|
||||||
msgid "It seems that this team has not solved any challenge yet..."
|
msgid "It seems that this team has not solved any challenge yet..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:20
|
#: home/templates/home/home.html:21
|
||||||
msgid "Weekly Top 5"
|
msgid "Weekly Top 5"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:56
|
#: home/templates/home/home.html:48
|
||||||
msgid "No article available."
|
msgid "No article available."
|
||||||
msgstr "Нет доступных статей."
|
msgstr "Нет доступных статей."
|
||||||
|
|
||||||
#: home/templates/home/home.html:61
|
#: home/templates/home/home.html:53
|
||||||
msgid "Latest challenges added"
|
msgid "Latest challenges added"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:66
|
#: home/templates/home/home.html:58
|
||||||
msgid "points"
|
msgid "points"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:70
|
#: home/templates/home/home.html:62
|
||||||
msgid "No ctf available."
|
msgid "No ctf available."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:74
|
#: home/templates/home/home.html:66
|
||||||
msgid "Latest Flags"
|
msgid "Latest Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:88
|
#: home/templates/home/home.html:80
|
||||||
msgid "Flags"
|
msgid "Flags"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: home/templates/home/home.html:94
|
#: home/templates/home/home.html:86
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:115
|
#: project/settings.py:116
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:116
|
#: project/settings.py:117
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:117
|
#: project/settings.py:118
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: project/settings.py:118
|
#: project/settings.py:119
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:120
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: project/settings.py:121
|
||||||
|
msgid "Spanish"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
#: scoreboard/templates/scoreboard/scoreboard.html:38
|
||||||
msgid "First"
|
msgid "First"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -548,19 +586,19 @@ msgstr ""
|
||||||
msgid "Scoreboard"
|
msgid "Scoreboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:66
|
#: templates/base.html:64
|
||||||
msgid "Resources"
|
msgid "Resources"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:99
|
#: templates/base.html:93
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Выйти"
|
msgstr "Выйти"
|
||||||
|
|
||||||
#: templates/base.html:106
|
#: templates/base.html:100
|
||||||
msgid "Sign Up"
|
msgid "Sign Up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/base.html:144
|
#: templates/base.html:135
|
||||||
msgid "Become a Patron!"
|
msgid "Become a Patron!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ INSTALLED_APPS = [
|
||||||
'scoreboard.apps.ScoreboardConfig',
|
'scoreboard.apps.ScoreboardConfig',
|
||||||
'resources.apps.ResourcesConfig',
|
'resources.apps.ResourcesConfig',
|
||||||
'django.contrib.sites',
|
'django.contrib.sites',
|
||||||
|
'api.apps.ApiConfig',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
@ -116,6 +117,8 @@ LANGUAGES = (
|
||||||
('de', _('German')),
|
('de', _('German')),
|
||||||
('fr', _('French')),
|
('fr', _('French')),
|
||||||
('ru', _('Russian')),
|
('ru', _('Russian')),
|
||||||
|
('ja', _('Japanese')),
|
||||||
|
('es', _("Spanish")),
|
||||||
)
|
)
|
||||||
|
|
||||||
LOCALE_PATHS = (
|
LOCALE_PATHS = (
|
||||||
|
|
|
@ -24,6 +24,7 @@ urlpatterns = [
|
||||||
path('', include('home.urls')),
|
path('', include('home.urls')),
|
||||||
path('set_lang/<str:lang_code>', home.views.set_language, name="set_language"),
|
path('set_lang/<str:lang_code>', home.views.set_language, name="set_language"),
|
||||||
path('dashboard/secret/admin', admin.site.urls),
|
path('dashboard/secret/admin', admin.site.urls),
|
||||||
|
path('api/', include('api.urls'))
|
||||||
]
|
]
|
||||||
|
|
||||||
urlpatterns += i18n_patterns(
|
urlpatterns += i18n_patterns(
|
||||||
|
|
|
@ -3,315 +3,373 @@
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: 2022-02-10 19:27+0100\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr ""
|
msgstr "Was ist 42CTF?"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr ""
|
msgstr "Eine kurze Einführung zu CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"CTF steht für Capture The Flag. Es ist ein Computersicherheitswettbewerb, "
|
||||||
|
"indem Teilnehmer Herausforderungen verschiedener Kategorien lösen müssen um "
|
||||||
|
"die meisten Punkte zu verdienen."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Die Herausforderungen bestehen darin eine Art Passwort zu finden: sogenannte "
|
||||||
|
"\\"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:15
|
||||||
|
msgid "Functionment of 42CTF"
|
||||||
|
msgstr "Funktionsweise von 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:16
|
||||||
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
|
msgstr "42CTF ist ein sogenanntes Dauer-CTF."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Functionment of 42CTF"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr "Außer bei"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "events"
|
||||||
|
msgstr "Ereignissen"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "challenges are available on the platform without time limitations."
|
||||||
|
msgstr "sind Herausforderungen auf der Plattform unbegrenzt zugänglich."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "Except from the"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "events"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "challenges are available on the platform without time limitations."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Die Registrierung bei 42CTF ist für jeden offen, ob 42-Student oder nicht."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ereignisse können öffentlich oder privat sein. Wenn Sie ein Ereignis bei "
|
||||||
|
"42CTF organisieren möchten, kontaktieren Sie uns."
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:22
|
||||||
|
msgid "42CTF Team"
|
||||||
|
msgstr "das 42CTF Team"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:23
|
||||||
|
msgid "42CTF is managed by 42 students."
|
||||||
|
msgstr "42CTF wird von 42-Studenten verwaltet."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "42CTF Team"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr "Treffen können Sie das Team auf"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid "42CTF is managed by 42 students."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
|
||||||
msgid "You can meet the team on"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Herausforderungen werden von verschiedenen Mitwirkende beigetragen, nicht "
|
||||||
|
"zwingend 42-Studenten."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Beiträge sind von jedem willkommen, entweder auf dem Dauer-CTF, oder für ein "
|
||||||
|
"bestimmtes Ereignis."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr "Erstelle neue Herausforderungen"
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Sie Herausforderungen für 42CTF erstellen möchten, schicken Sie uns "
|
||||||
|
"eine Nachricht auf "
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Ihre Herausforderung offline ist, müssen Sie uns nicht im voraus "
|
||||||
|
"fragen."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Ihre Herausforderung online ist (z.B. web oder pwn), dann sollten Sie "
|
||||||
|
"uns eine kurze Beschreibung Ihres Vorhabens geben."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Wir können Ihnen helfen oder Ressourcen sowie Dockerfiles zur Verfügung "
|
||||||
|
"stellen."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr "Wir haben vor diese Ressourcen in naher Zukunft zu veröffentlichen."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr ""
|
msgstr "Spenden"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr ""
|
msgstr "42CTF-Mitglied werden"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"42CTF ist eine gemeinnützige Organisation mit einem Rechtsstatus nach "
|
||||||
|
"französischem Recht (Association loi 1901)."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Sie können uns unterstützen indem Sie Mitglied werden und 15 Euro zahlen."
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:13
|
||||||
|
msgid "Membership is then granted for 1 year."
|
||||||
|
msgstr "Die Mitgliedschaft wird dann ein Jahr lang gewährt."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "Membership is then granted for 1 year."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr ""
|
msgstr "Wenn Sie Mitglied werden, bekommen Sie folgende Vorteile:"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Eine verschiedene Farbe für Ihren Nutzernamen im Punktestand, sodass jeder "
|
||||||
|
"weiß dass Sie ein Mitglied sind."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Die Möglichkeit einen vergangenen CTF zu wiederholen, mit Herausforderungen "
|
||||||
|
"die nicht mehr verfügbar sind, in Form von privaten Ereignissen mit Menschen "
|
||||||
|
"Ihrer Wahl."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Z.B.: Sie haben am Welcome CTF 2021 teilgenommen, und wollen es mit Ihren "
|
||||||
|
"Freunden an einem Wochenende wiederholen."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Oder Sie haben nicht am Welcome CTF 2021 teilgenommen weil Sie nicht dazu "
|
||||||
|
"berechtigt waren."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Weitere Vorteile können später folgen, und Sie können uns Ihre Ideen "
|
||||||
|
"mitteilen."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Trotzdem werden wir keine zeitlich begrenzte CTFs nur für Mitglieder "
|
||||||
|
"organisieren, da diese Zahlungspflichtige Ereignissen gleichen, und wir "
|
||||||
|
"42CTF KOSTENLOS für alle zugänglich behalten wollen."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr ""
|
msgstr "An 42CTF spenden"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Folgende Zahlungsmethoden sind für eine Spende an 42CTF oder den Kauf einer "
|
||||||
|
"Mitgliedshaft verfügbar:"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Sie möchten, dass wir eine andere Zahlungsmethode hinzufügen oder "
|
||||||
|
"lieber Bar zahlen möchten, schicken Sie uns eine Nachricht!"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Sie für eine Mitgliedschaft zahlen, vergessen Sie nicht uns Ihren vor "
|
||||||
|
"und Nachnamen, sowie Ihren 42CTF Nutzernamen mitzuteilen."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Wir verwenden diese Daten nur um den Überblick über unsere Mitglieder zu "
|
||||||
|
"Behalten und ihnen Vorteile zu bieten, und werden Sie niemals an einem "
|
||||||
|
"Dritten übermitteln."
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
msgid "Edit this page"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
|
msgid "Edit this page"
|
||||||
|
msgstr "Diese Seite bearbeiten"
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:12
|
#: resources/templates/resources/edit.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"More information coming soon, but as you can guess it involves making a pull "
|
"More information coming soon, but as you can guess it involves making a pull "
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Weitere Information wird folgen, doch sowie Sie es erraten können benötigt "
|
||||||
|
"es eine Pull Request auf Ihrer lieblings"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr "Empfohlene Werkzeuge"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr "Zum beginnen haben wir eine VM erstellt die Sie einfach auf"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr "importieren können, mit vielen nützlichen Werkzeugen."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr "Herunterladen können Sie die OVA"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:11
|
||||||
|
msgid "here"
|
||||||
|
msgstr "Hier"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "here"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr "Folgende Werkzeuge sind auf der VM vorinstalliert:"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Falls Sie die Herausforderung auf Ihrer eigenen Maschine lösen möchten, "
|
||||||
|
"empfehlen wir Ihnen einen Linux Betriebssystem zu verwenden."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Die meisten Reverse-Engineering Herausforderungen sind ELF-Binärdateien und "
|
||||||
|
"können auf macOS oder Windows nicht ausgeführt werden."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr "Zusätzlich, werden Sie folgende Skript-Interpreter benötigen:"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr "42CTF Übersetzen"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr "42CTF's Quellcode ist öffentlich zugänglich auf"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Übersetzung benötigt keine Programmierkenntnisse und ist ein gute "
|
||||||
|
"Möglichkeit beizutragen wenn Sie uns helfen möchten, indem Sie diese "
|
||||||
|
"Plattform immer zugänglicher machen."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr "Wir haben einen"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
# FIXME: internalization -> internationalization
|
||||||
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"indem beschrieben wird wie man mit dem Django Internationalisierungsmodul "
|
||||||
|
"Seiten übersetzt."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Wir laden Sie dazu ein es zu lesen um alle Einzelheiten zur Kenntnis zu "
|
||||||
|
"nehmen, doch schrecken Sie sich nicht ab, es ist nichts mehr als "
|
||||||
|
"Textverarbeitung, keine Programmierkenntnisse sind benötigt ;)"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Sie müssen das git Repository forken, Ihre Änderungen tätigen, pushen, und "
|
||||||
|
"eine Pull Request eröffnen, sodass wir Ihre Beiträge in unsere Repository "
|
||||||
|
"mergen können."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr "Zögern Sie nicht, nach Hilfe zu bitten auf"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -18,196 +18,209 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:15
|
||||||
msgid "Functionment of 42CTF"
|
msgid "Functionment of 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
#: resources/templates/resources/42ctf.html:16
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Except from the"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "events"
|
msgid "events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "challenges are available on the platform without time limitations."
|
msgid "challenges are available on the platform without time limitations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:22
|
||||||
msgid "42CTF Team"
|
msgid "42CTF Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:23
|
||||||
msgid "42CTF is managed by 42 students."
|
msgid "42CTF is managed by 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "You can meet the team on"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:13
|
||||||
msgid "Membership is then granted for 1 year."
|
msgid "Membership is then granted for 1 year."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
msgid "Edit this page"
|
msgid "Edit this page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -217,101 +230,83 @@ msgid ""
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "here"
|
msgid "here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -8,310 +8,358 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: 2022-02-09 10:55+0100\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Javier Uhagón (uhagontorralvojavier@gmail.com)\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: \n"
|
||||||
"Language: \n"
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr ""
|
msgstr "¿ Qué es 42CTF ?"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr ""
|
msgstr "Una corta introducción a CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"CTF significa Capture the Flag. Es una competición de ciberseguridad, en la "
|
||||||
|
"que los participantes tienen que resolver retos de diferentes categorías "
|
||||||
|
"para ganar puntos y progresar en la Tabla de puntos."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Los retos requieren que los participantes encuentren unas contraseñas "
|
||||||
|
"llamadas \\"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:15
|
||||||
|
msgid "Functionment of 42CTF"
|
||||||
|
msgstr "Funcionamiento de 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:16
|
||||||
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
|
msgstr "42CTF es lo que llamamos un CTF permanente."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Functionment of 42CTF"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr "A excepción de"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "events"
|
||||||
|
msgstr "eventos"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "challenges are available on the platform without time limitations."
|
||||||
|
msgstr "los retos están disponibles en la plataforma sin limites de tiempo."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "Except from the"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "events"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "challenges are available on the platform without time limitations."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"El registro a 42CTF está abierto a todo el mundo, estudiantes de 42 o no."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Los eventos pueden o no estar abiertos. Si quieres organizar un evento en "
|
||||||
|
"42CTF, sientete libre de contactarnos."
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:22
|
||||||
|
msgid "42CTF Team"
|
||||||
|
msgstr "Equipo de 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:23
|
||||||
|
msgid "42CTF is managed by 42 students."
|
||||||
|
msgstr "42CTF está gestionado por estudiantes de 42."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "42CTF Team"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr "Puedes conocer al equipo en"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid "42CTF is managed by 42 students."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
|
||||||
msgid "You can meet the team on"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Los retos son creados por varios contribuidores, no necesariamente "
|
||||||
|
"estudiantes de 42."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Todo el mundo está bienvenido a publicar sus propios retos, en el CTF "
|
||||||
|
"permanente o en un evento en específico."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr "Crear retos nuevos"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
|
msgstr "Si quieres crear nuevos retos para 42CTF, mandanos un mensaje en "
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
|
msgstr "Si tu reto es offline, no nos tienes que avisar por adelantado."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si tu evento es online (por ejemplo web o pwn), entonces deberias mandarnos "
|
||||||
|
"una corta descripción de lo que quieres hacer."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr "Podemos ser de ayuda o darte recursos como dockerfiles."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr "Planeamos publicar estos recursos al publico en un futuro cercano."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr ""
|
msgstr "Donar"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr ""
|
msgstr "Convertirse en un miembro de 42CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"42CTF es una organización sin ánimo de lucro bajo un estatus legal bajo la "
|
||||||
|
"ley francesa (loi de asociación 1901)."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Puedes apoyarnos convirtiendote en un miebro y pagandonos una comisión de 15 "
|
||||||
|
"euros."
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:13
|
||||||
|
msgid "Membership is then granted for 1 year."
|
||||||
|
msgstr "La membresia dura 1 año."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "Membership is then granted for 1 year."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr ""
|
msgstr "Cuando te conviertes en un miembro, ganas las siguientes ventajas:"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Un color diferente para tu pseudo en la tabla de puntuaciones para que todo "
|
||||||
|
"el mundo sepa que eres un miembro."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La posibilidad e jugar un CTF del pasado, con retos que ya no están "
|
||||||
|
"disponibles, crear eventos privados con gente de tu elección."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Ejemplo: Si jugaste CTF 2021, y quieres volverlo a jugar con tus amigos "
|
||||||
|
"durante un fin de semana."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr ""
|
msgstr "O no jugaste el Welcome CTF 2021 porque no estabas disponible."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr "Más ideas llegarán pronto, y puedes enviarnos ideas."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Sin embargo, no organizaremos CTF de tiempo limitado para miembros, ya que "
|
||||||
|
"esto sería equivalente a organizar eventos de pago, y queremos mantener "
|
||||||
|
"42CTF GRATIS para todos."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr ""
|
msgstr "Dona a 42CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Puedes donar a 42CTF o pagar tu membresía con los siguientes métodos de pago:"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si quieres que añadamos otro metodo de pago o quieres pagarnos en efectivo "
|
||||||
|
"¡Mandanos un mensaje!"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si estás pagando por tu membresía, no olvides mandarnos tu nombre y "
|
||||||
|
"apellido, también tu nombre de usuario en 42CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Solo usarmos los datos para tener control de la lista de miembros y darte "
|
||||||
|
"las ventajas de miembro, nunca se los daremos a ningún tercero."
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
msgid "Edit this page"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
|
msgid "Edit this page"
|
||||||
|
msgstr "Editar esta página"
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:12
|
#: resources/templates/resources/edit.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"More information coming soon, but as you can guess it involves making a pull "
|
"More information coming soon, but as you can guess it involves making a pull "
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Más información llegará pronto, pero como puedes imaginar requiere hacer un "
|
||||||
|
"pull request a tu favorito"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr "Herramientas Recomendadas"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Para empezar, hemos creado una Máquina Virtual que simplemente puedes "
|
||||||
|
"importar."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr "con unas cuantas herramientas útiles."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr "Puedes descargar este OVA"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:11
|
||||||
|
msgid "here"
|
||||||
|
msgstr "aquí"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "here"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr "Aquí están las herramientas instaladas en la Máquina Virtual:"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si quieres resolver los retos en tu propia máquina, te recomendamos usar "
|
||||||
|
"Linux como sistema operativo."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La mayoría de retos de ingeniería inversa usan binarios ELF y no funcionarán "
|
||||||
|
"en Mac OS o Windows."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr "Además, necesitarás tender los siguientes interpretes de lenguaje:"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr "Traducir 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr "El código de 42CTF está disponible al público aquí"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La traducción no requiere saber programación y es una buena forma para "
|
||||||
|
"contribuir si quieres ayudarnos, haciendo la plataforma siempre más "
|
||||||
|
"accesible."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr "Tenemos un"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Describiendo como traducir las páginas con el modulo de internacionalización "
|
||||||
|
"Django."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Te invitamos a leerlo para conocer todos los detalles, pero simplemente "
|
||||||
|
"rquiere que edites archivos de texto, asi que como ves, no hace falta saber "
|
||||||
|
"programar ;)"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Vas a necesitar hacer un Fork del repositorio de git, hacer tus cambios, "
|
||||||
|
"hacer un push y entonces abrir un Pull request para que podamos hacer merge "
|
||||||
|
"de tus cambios a nuestro repositorio."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr "No dudes en pedirnos ayuda"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -18,137 +18,158 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr "Qu'est ce que 42CTF ?"
|
msgstr "Qu'est-ce que 42CTF ?"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr "Une brève introduction aux CTF"
|
msgstr "Une brève introduction aux CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"CTF veut dire Capture The Flag. C'est une compétition de cybersécurité où "
|
||||||
|
"les participants doivent résoudre des challenges dans différentes catégories "
|
||||||
|
"pour gagner des points et progresser dans le classement."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Les challenges demandent aux participants de trouver des sortes de mots de "
|
||||||
|
"passe appelés \"flags\" et de les soumettre sur la plateforme."
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:15
|
||||||
|
msgid "Functionment of 42CTF"
|
||||||
|
msgstr "Fonctionnement de 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:16
|
||||||
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
|
msgstr "42CTF est ce qu'on appelle un CTF permanent."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Functionment of 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
|
||||||
msgid "Except from the"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr "Sauf pour les"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "events"
|
msgid "events"
|
||||||
msgstr ""
|
msgstr "évènements"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "challenges are available on the platform without time limitations."
|
msgid "challenges are available on the platform without time limitations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"les challenges sont disponnibles sur la plateforme sans limites de temps."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr "L'inscription à 42CTF est ouverte à tous, étudiant de 42 ou"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Les évènements peuvent être publics ou non. Si vous souhaitez organiser un "
|
||||||
|
"évènement sur 42CTF, n'hésitez pas à nous contacter."
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:22
|
||||||
|
msgid "42CTF Team"
|
||||||
|
msgstr "Équipe de 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:23
|
||||||
|
msgid "42CTF is managed by 42 students."
|
||||||
|
msgstr "42CTF est géré par des étudiants de 42"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "42CTF Team"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr "Vous pouvez rencontrer l'équipe sur"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid "42CTF is managed by 42 students."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
|
||||||
msgid "You can meet the team on"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Les challenges sont créés par divers contributeurs, pas nécessairement des "
|
||||||
|
"étudiants de 42."
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Tout le monde est invité à soumettre ses propres défis, que ce soit sur le "
|
||||||
|
"CTF permanent ou pour un évènement spécifique."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr "Créer de nouveaux challenges"
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si vous souhaitez créer de nouveaux challenges pour 42CTF, envoyez-nous un "
|
||||||
|
"message sur "
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si votre défi est hors ligne, vous n'avez pas besoin de nous demander à "
|
||||||
|
"l'avance."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si votre challenge est en ligne (par exemple web or pwn), alors vous devrez "
|
||||||
|
"nous donner une courte description de ce que vous voulez faire."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Nous pouvons être en mesure de vous aider ou de vous fournir des ressources "
|
||||||
|
"comme des dockerfiles."
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Nous prévoyons de rendre ces ressources accessibles au public dans un avenir "
|
||||||
|
"proche."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr "Donner"
|
msgstr "Donner"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr "Devenez membre de 42CTF"
|
msgstr "Devenez membre de 42CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr "42CTF est une association loi 1901 (loi française)."
|
msgstr "42CTF est une association loi 1901 (loi française)."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous pouvez nous aider financièrement en devenant membre, au cout de 15 "
|
"Vous pouvez nous aider financièrement en devenant membre, au cout de 15 "
|
||||||
"euros."
|
"euros."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:13
|
||||||
msgid "Membership is then granted for 1 year."
|
msgid "Membership is then granted for 1 year."
|
||||||
msgstr "Le status de membre est valable 1 an au paiement de la cotisation."
|
msgstr "Le status de membre est valable 1 an au paiement de la cotisation."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr "Lorsque vous adherez à 42CTF, vous obtenez les avantages suivants :"
|
msgstr "Lorsque vous adherez à 42CTF, vous obtenez les avantages suivants :"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
|
@ -156,16 +177,16 @@ msgstr ""
|
||||||
"Une couleur différente pour votre pseudo sur le scoreboard, pour que tout le "
|
"Une couleur différente pour votre pseudo sur le scoreboard, pour que tout le "
|
||||||
"monde sache que vous êtes membre."
|
"monde sache que vous êtes membre."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La possibilité de jouer de nouveau aux CTF passés, avec des challenges qui "
|
"La possibilité de jouer de nouveau aux CTF passés, avec des challenges qui "
|
||||||
"ne sont plus disponibles, sous la forme d'un événement privé avec les "
|
"ne sont plus disponibles, sous la forme d'un évènement privé avec les "
|
||||||
"personnes de votre choix."
|
"personnes de votre choix."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
|
@ -173,53 +194,53 @@ msgstr ""
|
||||||
"Ex: vous avez joué au Welcome CTF 2021, et vous voulez renouveler "
|
"Ex: vous avez joué au Welcome CTF 2021, et vous voulez renouveler "
|
||||||
"l'expérience avec vos amis le temps d'un weekend."
|
"l'expérience avec vos amis le temps d'un weekend."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr "Ou au contraire vous n'avez pas joué car vous n'étiez pas éligible."
|
msgstr "Ou au contraire vous n'avez pas joué car vous n'étiez pas éligible."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Plus d'avantages pourraient être disponibles plus tard, et vous pouvez nous "
|
"Plus d'avantages pourraient être disponibles plus tard, et vous pouvez nous "
|
||||||
"soumettre vos idées."
|
"soumettre vos idées."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cependant, nous n'organiserons pas de CTF en temps limité réservé aux "
|
"Cependant, nous n'organiserons pas de CTF en temps limité réservé aux "
|
||||||
"membres, car cela serait équivalent à organiser des événements payants, and "
|
"membres, car cela serait équivalent à organiser des évènements payants, et "
|
||||||
"nous voulons que 42CTF reste GRATUIT pour tous."
|
"nous voulons que 42CTF reste GRATUIT pour tous."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr "Donnez à 42CTF"
|
msgstr "Donnez à 42CTF"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous pouvez donner à 42CTF ou payer votre adhésion avec les moyens suivants :"
|
"Vous pouvez donner à 42CTF ou payer votre adhésion avec les moyens suivants :"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous aimeriez qu'on ajoute un autre moyen de paiement, ou si vous voulez "
|
"Si vous aimeriez qu'on ajoute un autre moyen de paiement, ou si vous voulez "
|
||||||
"payer en liquide, envoyez nous un message !"
|
"payer en liquide, envoyez-nous un message !"
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous payez pour l'adhesion, n'oubliez pas de nous envoyer vos noms et "
|
"Si vous payez pour l'adhésion, n'oubliez pas de nous envoyer vos noms et "
|
||||||
"prénoms, ainsi que votre pseudo 42CTF."
|
"prénoms, ainsi que votre pseudo 42CTF."
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
|
@ -228,112 +249,127 @@ msgstr ""
|
||||||
"et vous accorder des avantages, nous ne transmettrons jamais ces données à "
|
"et vous accorder des avantages, nous ne transmettrons jamais ces données à "
|
||||||
"des tierces parties."
|
"des tierces parties."
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
msgid "Edit this page"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
|
msgid "Edit this page"
|
||||||
|
msgstr "Modifier cette page"
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:12
|
#: resources/templates/resources/edit.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"More information coming soon, but as you can guess it involves making a pull "
|
"More information coming soon, but as you can guess it involves making a pull "
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"De plus amples informations seront bientôt disponibles, mais comme vous "
|
||||||
|
"pouvez le deviner, vous pouvez faire une pull request sur votre bien aimé"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr "Outils recommandés"
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Pour commencer, nous avons construit une VM que vous pouvez simplement "
|
||||||
|
"importer dans"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr "avec quelques outils utiles"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr "Vous pouvez télécharger l'OVA"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:11
|
||||||
|
msgid "here"
|
||||||
|
msgstr "ici"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "here"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr "Voici la liste des outils installés sur la VM:"
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Si vous voulez résoudre les challenges sur votre propre machine, nous "
|
||||||
|
"recommandons l'utilisation de Linux."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La plupart des challenges de reverse sont des binaies ELF et ne "
|
||||||
|
"fonctionneront pas sur MacOS ou Windows."
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr "De plus, vous aurez besoin des interpréteurs de langage suivants :"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr "Traduire 42CTF"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr "Le code source de 42CTF est publiquement disponible sur ce"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"La traduction ne nécessite aucune compétence en programmation et constitue "
|
||||||
|
"un bon moyen de contribuer si vous souhaitez nous aider, en rendant la "
|
||||||
|
"plateforme toujours plus accessible."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr "Nous avons un"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"qui décrit comment traduire des pages avec le module d'internalisation de "
|
||||||
|
"Django."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Nous vous invitons à le lire pour connaitre tous les détails, mais il suffit "
|
||||||
|
"simplement de modifier des fichiers texte, donc vous voyez, aucune "
|
||||||
|
"compétence en programmation n'est requise ;)"
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Vous devrez forker le dépôt git, effectuer vos modifications, les push, puis "
|
||||||
|
"ouvrir une pull request afin que nous puissions merge vos contributions dans "
|
||||||
|
"notre repo."
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr "N'hésitez pas à demander de l'aide sur"
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -18,196 +18,209 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:15
|
||||||
msgid "Functionment of 42CTF"
|
msgid "Functionment of 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
#: resources/templates/resources/42ctf.html:16
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Except from the"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "events"
|
msgid "events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "challenges are available on the platform without time limitations."
|
msgid "challenges are available on the platform without time limitations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:22
|
||||||
msgid "42CTF Team"
|
msgid "42CTF Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:23
|
||||||
msgid "42CTF is managed by 42 students."
|
msgid "42CTF is managed by 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "You can meet the team on"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:13
|
||||||
msgid "Membership is then granted for 1 year."
|
msgid "Membership is then granted for 1 year."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
msgid "Edit this page"
|
msgid "Edit this page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -217,101 +230,83 @@ msgid ""
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "here"
|
msgid "here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -0,0 +1,363 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:7
|
||||||
|
msgid "What is 42CTF ?"
|
||||||
|
msgstr "42CTFとは?"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:10
|
||||||
|
msgid "A short introduction to CTF"
|
||||||
|
msgstr "CTFについての簡単な紹介"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:11
|
||||||
|
msgid ""
|
||||||
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
|
"participants have to solve challenges of various categories to gain points "
|
||||||
|
"and progress on the scoreboard."
|
||||||
|
msgstr ""
|
||||||
|
"42CTFとは、Capture The Flagの略です。サイバーセキュリティの競技会のことで、参"
|
||||||
|
"加者は様々なカテゴリーの課題を解決してポイントを獲得し、スコアボードでの順位"
|
||||||
|
"を上げていきます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:12
|
||||||
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
|
msgstr ""
|
||||||
|
"この課題では、参加者は\"フラグ\"と呼ばれるパスワードを見つけて、プラット"
|
||||||
|
"フォームに送信することになっています。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:15
|
||||||
|
msgid "Functionment of 42CTF"
|
||||||
|
msgstr "42CTFの機能紹介"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:16
|
||||||
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
|
msgstr "42CTFは、いわゆる永続的CTFです。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "Except from the"
|
||||||
|
msgstr "こちらを除き"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "events"
|
||||||
|
msgstr "(イベント)"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:17
|
||||||
|
msgid "challenges are available on the platform without time limitations."
|
||||||
|
msgstr "時間制限なしにプラットフォーム上でチャレンジ可能です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:18
|
||||||
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
|
msgstr "42CTFへの登録は、42の学生であるかどうかに関わらず、誰でも可能です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:19
|
||||||
|
msgid ""
|
||||||
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
|
"42CTF, feel free to contact us."
|
||||||
|
msgstr ""
|
||||||
|
"イベントは開催する場合としない場合があります。42CTFでのイベント開催をご希望の"
|
||||||
|
"方は、お気軽にお問い合わせください。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:22
|
||||||
|
msgid "42CTF Team"
|
||||||
|
msgstr "42CTFチーム"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:23
|
||||||
|
msgid "42CTF is managed by 42 students."
|
||||||
|
msgstr "42CTFは42の学生によって運営されています。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:24
|
||||||
|
msgid "You can meet the team on"
|
||||||
|
msgstr "こちらでチームに会えます:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:25
|
||||||
|
msgid ""
|
||||||
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
|
msgstr "課題は42の学生だけではなく、様々な協力者によって作られます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/42ctf.html:26
|
||||||
|
msgid ""
|
||||||
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
|
"CTF or for a specific event."
|
||||||
|
msgstr ""
|
||||||
|
"常設のCTFでも、特定のイベントでも、誰でも自身が作成した課題を提出することがで"
|
||||||
|
"きます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
|
msgid "Create new challenges"
|
||||||
|
msgstr "新しい課題を作成する"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
|
msgstr ""
|
||||||
|
"42CTFの新しい課題を作成したい方は、こちらでメッセージを送ってください:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
|
msgstr "オフラインでの課題であれば、事前にご相談いただく必要はありません。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
|
msgid ""
|
||||||
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
|
"us a short description of what you want to do."
|
||||||
|
msgstr ""
|
||||||
|
"課題がオンラインの場合(例:webやpwn)、何をしたいのかを簡単に説明してくださ"
|
||||||
|
"い。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
|
msgid ""
|
||||||
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
|
msgstr ""
|
||||||
|
"私たちがお手伝いをさせていただいたり、dockerfileなどのリソースを提供させてい"
|
||||||
|
"ただく場合があります。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
|
msgstr "近日、これらのリソースを公開する予定です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:7
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "寄付"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:10
|
||||||
|
msgid "Become a 42CTF member"
|
||||||
|
msgstr "42CTFのメンバーになる"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:11
|
||||||
|
msgid ""
|
||||||
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
|
"(Association loi 1901)."
|
||||||
|
msgstr ""
|
||||||
|
"42CTFは、フランスの法律(Association loi 1901)に基づく法的地位を有する非営利"
|
||||||
|
"団体です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:12
|
||||||
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
|
msgstr ""
|
||||||
|
"メンバーになって、15ユーロの会費を払うことで、私たちをサポートすることができ"
|
||||||
|
"ます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:13
|
||||||
|
msgid "Membership is then granted for 1 year."
|
||||||
|
msgstr "その後、1年間のメンバーシップが付与されます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:15
|
||||||
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
|
msgstr "会員になると、以下のようなメリットがあります:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:16
|
||||||
|
msgid ""
|
||||||
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
|
"you're a member."
|
||||||
|
msgstr ""
|
||||||
|
"スコアボードに表示されるアカウント名の色が変わり、メンバーであることが誰にで"
|
||||||
|
"もわかるように。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:17
|
||||||
|
msgid ""
|
||||||
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
|
"in the form of private events with the people of your choice."
|
||||||
|
msgstr ""
|
||||||
|
"チャレンジができなくなった過去のCTFを、好きな人とプライベートイベントの形で再"
|
||||||
|
"びチャレンジできる可能性。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:18
|
||||||
|
msgid ""
|
||||||
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
|
"during one weekend."
|
||||||
|
msgstr ""
|
||||||
|
"例:Welcome CTF 2021 に一度チャレンジして、週末に友達ともう一度チャレンジした"
|
||||||
|
"いと思っている方。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:19
|
||||||
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
|
msgstr ""
|
||||||
|
"または、Welcome CTF 2021 への参加資格がなかったため、チャレンジできなかった"
|
||||||
|
"方。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:22
|
||||||
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
|
msgstr ""
|
||||||
|
"もっと多くの利点があるかもしれませんし、あなたのアイデアを私たちに提供してい"
|
||||||
|
"ただくことも可能です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:23
|
||||||
|
msgid ""
|
||||||
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
|
"for all."
|
||||||
|
msgstr ""
|
||||||
|
"しかし、メンバーのみ参加できる期間限定CTFを開催することはありません。これは、"
|
||||||
|
"有料のイベントを開催することと同義であり、私たちは42CTFがすべての人にとって無"
|
||||||
|
"料であることを望んでいます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:26
|
||||||
|
msgid "Donate to 42CTF"
|
||||||
|
msgstr "42CTFに寄付する"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:27
|
||||||
|
msgid ""
|
||||||
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
|
msgstr ""
|
||||||
|
"42CTFへのご寄付やメンバーシップのお支払いは、以下の手段で行うことができます:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:44
|
||||||
|
msgid ""
|
||||||
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
|
"cash, send us a message !"
|
||||||
|
msgstr ""
|
||||||
|
"他のお支払い方法や現金でのお支払いをご希望の場合は、メッセージをお送りくださ"
|
||||||
|
"い。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:46
|
||||||
|
msgid ""
|
||||||
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
|
"last name, as well as your 42CTF pseudo."
|
||||||
|
msgstr ""
|
||||||
|
"メンバーシップをお支払いになる場合は、氏名と42CTFのアカウント名を忘れずにお送"
|
||||||
|
"りください。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:47
|
||||||
|
msgid ""
|
||||||
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
|
"advantages, and we will never communicate them to any third party."
|
||||||
|
msgstr ""
|
||||||
|
"これらのデータは、メンバーの管理と特典の付与のためにのみ使用し、第三者に提供"
|
||||||
|
"することはありません。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:50
|
||||||
|
msgid "What will we do with your money ?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
|
msgid "Edit this page"
|
||||||
|
msgstr "このページの編集"
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:12
|
||||||
|
msgid ""
|
||||||
|
"More information coming soon, but as you can guess it involves making a pull "
|
||||||
|
"request to your favorite"
|
||||||
|
msgstr ""
|
||||||
|
"詳細は近日中にお知らせしますが、お察しの通り、以下にプルリクエストをすること"
|
||||||
|
"になります:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:7
|
||||||
|
msgid "Recommended Tools"
|
||||||
|
msgstr "おすすめのツール"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:10
|
||||||
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
|
msgstr "手始めに、Virtual BoxでインストールするだけのVMを構築しました:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:10
|
||||||
|
msgid "with a bunch of useful tools."
|
||||||
|
msgstr "便利なツールを使用しました。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:11
|
||||||
|
msgid "You can dowload this OVA"
|
||||||
|
msgstr "このOVAはこちらからダウンロードできます:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:11
|
||||||
|
msgid "here"
|
||||||
|
msgstr "こちら"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:13
|
||||||
|
msgid "Here are the tools installed on the VM:"
|
||||||
|
msgstr "以下に、VMにインストールされたツールを紹介します:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:22
|
||||||
|
msgid ""
|
||||||
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
|
"use a Linux operating system."
|
||||||
|
msgstr ""
|
||||||
|
"自分のマシンで課題にチャレンジしたい場合は、Linux OSを使用することをお勧めし"
|
||||||
|
"ます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:23
|
||||||
|
msgid ""
|
||||||
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
|
"Windows."
|
||||||
|
msgstr "ReversingのほとんどはELFバイナリで、Mac OSやWindowsでは動作しません。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/tools.html:25
|
||||||
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
|
msgstr "さらに、以下の言語のインタプリタが必要です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr "42CTFを翻訳"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
|
msgid "42CTF source code is publicly available on this"
|
||||||
|
msgstr "42CTFのソースコードはこのサイトで公開されています。:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:11
|
||||||
|
msgid ""
|
||||||
|
"Translation does not require any programming skill and is a good way to "
|
||||||
|
"contribute if you want to help us, by making the platform always more "
|
||||||
|
"accessible."
|
||||||
|
msgstr ""
|
||||||
|
"翻訳にはプログラミングのスキルは必要ありません。プラットフォームをより使いや"
|
||||||
|
"すくすることで、私たちに貢献したいとお考えの方には良い方法です。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:12
|
||||||
|
msgid "We have a"
|
||||||
|
msgstr "こちらがあります。:"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:12
|
||||||
|
msgid ""
|
||||||
|
"describing how to translate pages with the Django internalization module."
|
||||||
|
msgstr ""
|
||||||
|
"djangoのinternalizationモジュールを使ってページを翻訳する方法を説明したもので"
|
||||||
|
"す。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:13
|
||||||
|
msgid ""
|
||||||
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
|
msgstr ""
|
||||||
|
"詳細はぜひ読んでいただきたいのですが、単にテキストファイルを編集するだけなの"
|
||||||
|
"で、プログラミングのスキルは必要ありません ;)"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:14
|
||||||
|
msgid ""
|
||||||
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
|
"repository."
|
||||||
|
msgstr ""
|
||||||
|
"gitリポジトリをフォークしていただき、変更を加えてプッシュし、プルリクエストを"
|
||||||
|
"作成していただくことで、皆さんの貢献を私たちのリポジトリにマージすることがで"
|
||||||
|
"きます。"
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:15
|
||||||
|
msgid "Don't hesitate to reach for help on"
|
||||||
|
msgstr "躊躇せずに、こちらで助けを求めてください。:"
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-02-02 19:22+0100\n"
|
"POT-Creation-Date: 2022-03-13 18:04+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -20,196 +20,209 @@ msgstr ""
|
||||||
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
|
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
|
||||||
"%100>=11 && n%100<=14)? 2 : 3);\n"
|
"%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:9
|
#: resources/templates/resources/42ctf.html:7
|
||||||
#: resources/templates/resources/resources.html:12
|
|
||||||
msgid "What is 42CTF ?"
|
msgid "What is 42CTF ?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:12
|
#: resources/templates/resources/42ctf.html:10
|
||||||
msgid "A short introduction to CTF"
|
msgid "A short introduction to CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:13
|
#: resources/templates/resources/42ctf.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
"CTF stands for Capture The Flag. It is a cybersecurity competition, where "
|
||||||
"participants have to solve challenges of various categories to gain points "
|
"participants have to solve challenges of various categories to gain points "
|
||||||
"and progress on the scoreboard."
|
"and progress on the scoreboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:14
|
#: resources/templates/resources/42ctf.html:12
|
||||||
msgid "The challenges require participants to find sort of passwords called \\"
|
msgid ""
|
||||||
|
"The challenges require participants to find sort of passwords called \"flags"
|
||||||
|
"\" and to submit them on the platform."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:17
|
#: resources/templates/resources/42ctf.html:15
|
||||||
msgid "Functionment of 42CTF"
|
msgid "Functionment of 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:18
|
#: resources/templates/resources/42ctf.html:16
|
||||||
msgid "42CTF is what we call a permanent CTF."
|
msgid "42CTF is what we call a permanent CTF."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "Except from the"
|
msgid "Except from the"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "events"
|
msgid "events"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:19
|
#: resources/templates/resources/42ctf.html:17
|
||||||
msgid "challenges are available on the platform without time limitations."
|
msgid "challenges are available on the platform without time limitations."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:20
|
#: resources/templates/resources/42ctf.html:18
|
||||||
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
msgid "The registration on 42CTF is open to everyone, 42 students or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:21
|
#: resources/templates/resources/42ctf.html:19
|
||||||
msgid ""
|
msgid ""
|
||||||
"Events may or may not be open. If you would like to organize an event on "
|
"Events may or may not be open. If you would like to organize an event on "
|
||||||
"42CTF, feel free to contact us."
|
"42CTF, feel free to contact us."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:24
|
#: resources/templates/resources/42ctf.html:22
|
||||||
msgid "42CTF Team"
|
msgid "42CTF Team"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:25
|
#: resources/templates/resources/42ctf.html:23
|
||||||
msgid "42CTF is managed by 42 students."
|
msgid "42CTF is managed by 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:26
|
#: resources/templates/resources/42ctf.html:24
|
||||||
msgid "You can meet the team on"
|
msgid "You can meet the team on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:27
|
#: resources/templates/resources/42ctf.html:25
|
||||||
msgid ""
|
msgid ""
|
||||||
"Challenges are created by various contributors, not necessarily 42 students."
|
"Challenges are created by various contributors, not necessarily 42 students."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/42ctf.html:28
|
#: resources/templates/resources/42ctf.html:26
|
||||||
msgid ""
|
msgid ""
|
||||||
"Anyone is welcome to submit their own challenges, either on the permanent "
|
"Anyone is welcome to submit their own challenges, either on the permanent "
|
||||||
"CTF or for a specific event."
|
"CTF or for a specific event."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:9
|
#: resources/templates/resources/create_challenge.html:7
|
||||||
#: resources/templates/resources/resources.html:28
|
|
||||||
msgid "Create new challenges"
|
msgid "Create new challenges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:12
|
#: resources/templates/resources/create_challenge.html:10
|
||||||
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
msgid "If you want to create new challenges for 42CTF, send us a message on "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:13
|
#: resources/templates/resources/create_challenge.html:11
|
||||||
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
msgid "If your challenge is offline, then you don't have to ask us in advance."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:14
|
#: resources/templates/resources/create_challenge.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"If your challenge is online (for example web or pwn), then you should give "
|
"If your challenge is online (for example web or pwn), then you should give "
|
||||||
"us a short description of what you want to do."
|
"us a short description of what you want to do."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:15
|
#: resources/templates/resources/create_challenge.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We may be able to help you or to give you resources such as dockerfiles."
|
"We may be able to help you or to give you resources such as dockerfiles."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/create_challenge.html:16
|
#: resources/templates/resources/create_challenge.html:14
|
||||||
msgid "We plan to make those resources publicly available in a near future."
|
msgid "We plan to make those resources publicly available in a near future."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:9
|
#: resources/templates/resources/donate.html:7
|
||||||
#: resources/templates/resources/resources.html:31
|
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:12
|
#: resources/templates/resources/donate.html:10
|
||||||
msgid "Become a 42CTF member"
|
msgid "Become a 42CTF member"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:13
|
#: resources/templates/resources/donate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"42CTF is a non-profit organization with a legal status under the french law "
|
"42CTF is a non-profit organization with a legal status under the french law "
|
||||||
"(Association loi 1901)."
|
"(Association loi 1901)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:14
|
#: resources/templates/resources/donate.html:12
|
||||||
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
msgid "You can support us by becoming a member and paying a fee of 15 euros."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:15
|
#: resources/templates/resources/donate.html:13
|
||||||
msgid "Membership is then granted for 1 year."
|
msgid "Membership is then granted for 1 year."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:17
|
#: resources/templates/resources/donate.html:15
|
||||||
msgid "When you become a member, you gain the following advantages:"
|
msgid "When you become a member, you gain the following advantages:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:18
|
#: resources/templates/resources/donate.html:16
|
||||||
msgid ""
|
msgid ""
|
||||||
"A different color for your pseudo in the scoreboard, to let everyone know "
|
"A different color for your pseudo in the scoreboard, to let everyone know "
|
||||||
"you're a member."
|
"you're a member."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:19
|
#: resources/templates/resources/donate.html:17
|
||||||
msgid ""
|
msgid ""
|
||||||
"The possibility to play again past CTF, with challenges no longer available, "
|
"The possibility to play again past CTF, with challenges no longer available, "
|
||||||
"in the form of private events with the people of your choice."
|
"in the form of private events with the people of your choice."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:20
|
#: resources/templates/resources/donate.html:18
|
||||||
msgid ""
|
msgid ""
|
||||||
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
"Ex: you played Welcome CTF 2021, and want to play it again with your friends "
|
||||||
"during one weekend."
|
"during one weekend."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:21
|
#: resources/templates/resources/donate.html:19
|
||||||
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
msgid "Or you didn't play Welcome CTF 2021 because you were not eligible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:24
|
#: resources/templates/resources/donate.html:22
|
||||||
msgid "More advantages may come later, and you can submit us your ideas."
|
msgid "More advantages may come later, and you can submit us your ideas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:25
|
#: resources/templates/resources/donate.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"However, we will not organize limited time CTF for members only, as this "
|
"However, we will not organize limited time CTF for members only, as this "
|
||||||
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
"will be equivalent to organize paid events, and we want 42CTF to remain FREE "
|
||||||
"for all."
|
"for all."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:28
|
#: resources/templates/resources/donate.html:26
|
||||||
msgid "Donate to 42CTF"
|
msgid "Donate to 42CTF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:29
|
#: resources/templates/resources/donate.html:27
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can donate to 42CTF or pay your membership with the following means:"
|
"You can donate to 42CTF or pay your membership with the following means:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:43
|
#: resources/templates/resources/donate.html:44
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you would like us to add another payment method or if you want to pay in "
|
"If you would like us to add another payment method or if you want to pay in "
|
||||||
"cash, send us a message !"
|
"cash, send us a message !"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:45
|
#: resources/templates/resources/donate.html:46
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you're paying for your membership, don't forget to send us your first and "
|
"If you're paying for your membership, don't forget to send us your first and "
|
||||||
"last name, as well as your 42CTF pseudo."
|
"last name, as well as your 42CTF pseudo."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/donate.html:46
|
#: resources/templates/resources/donate.html:47
|
||||||
msgid ""
|
msgid ""
|
||||||
"We will only use thoe data to keep track of our members and grant you "
|
"We will only use thoe data to keep track of our members and grant you "
|
||||||
"advantages, and we will never communicate them to any third party."
|
"advantages, and we will never communicate them to any third party."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/edit.html:9
|
#: resources/templates/resources/donate.html:50
|
||||||
#: resources/templates/resources/resources.html:30
|
msgid "What will we do with your money ?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/donate.html:51
|
||||||
|
msgid ""
|
||||||
|
"Hosting a website - and especially a CTF platform - costs money:\n"
|
||||||
|
" more precisely, it costs us <b>50 euros per month</b>.<br>\n"
|
||||||
|
" If we had <b>40 members</b> each year, it would be enough to "
|
||||||
|
"cover the hosting of 42CTF.<br>\n"
|
||||||
|
" With the additional money, we could for example offer prizes "
|
||||||
|
"for limited-time events, but we will update this page as soon as we reach "
|
||||||
|
"this threshold :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/edit.html:7
|
||||||
msgid "Edit this page"
|
msgid "Edit this page"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -219,101 +232,83 @@ msgid ""
|
||||||
"request to your favorite"
|
"request to your favorite"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:10
|
#: resources/templates/resources/tools.html:7
|
||||||
msgid "Getting started"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:13
|
|
||||||
#: resources/templates/resources/tools.html:9
|
|
||||||
msgid "Recommended Tools"
|
msgid "Recommended Tools"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:20
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "Technical documentation"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:21
|
|
||||||
msgid "No docs available, contact us if you want to write some :)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:26
|
|
||||||
msgid "Contribute"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/resources.html:29
|
|
||||||
#: resources/templates/resources/translate.html:9
|
|
||||||
msgid "Translate 42CTF"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
|
||||||
msgid "To get you started, we built a VM that you can simply import in"
|
msgid "To get you started, we built a VM that you can simply import in"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:12
|
#: resources/templates/resources/tools.html:10
|
||||||
msgid "with a bunch of useful tools."
|
msgid "with a bunch of useful tools."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "You can dowload this OVA"
|
msgid "You can dowload this OVA"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:13
|
#: resources/templates/resources/tools.html:11
|
||||||
msgid "here"
|
msgid "here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:15
|
#: resources/templates/resources/tools.html:13
|
||||||
msgid "Here are the tools installed on the VM:"
|
msgid "Here are the tools installed on the VM:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:24
|
#: resources/templates/resources/tools.html:22
|
||||||
msgid ""
|
msgid ""
|
||||||
"If you want to solve the challenges on your own machine, we recommend you to "
|
"If you want to solve the challenges on your own machine, we recommend you to "
|
||||||
"use a Linux operating system."
|
"use a Linux operating system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:25
|
#: resources/templates/resources/tools.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
|
||||||
"Windows."
|
"Windows."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/tools.html:27
|
#: resources/templates/resources/tools.html:25
|
||||||
msgid "Additionnaly, you will need the following languages interpreters:"
|
msgid "Additionnaly, you will need the following languages interpreters:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:12
|
#: resources/templates/resources/translate.html:7
|
||||||
|
msgid "Translate 42CTF"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/templates/resources/translate.html:10
|
||||||
msgid "42CTF source code is publicly available on this"
|
msgid "42CTF source code is publicly available on this"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:13
|
#: resources/templates/resources/translate.html:11
|
||||||
msgid ""
|
msgid ""
|
||||||
"Translation does not require any programming skill and is a good way to "
|
"Translation does not require any programming skill and is a good way to "
|
||||||
"contribute if you want to help us, by making the platform always more "
|
"contribute if you want to help us, by making the platform always more "
|
||||||
"accessible."
|
"accessible."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid "We have a"
|
msgid "We have a"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:14
|
#: resources/templates/resources/translate.html:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"describing how to translate pages with the Django internalization module."
|
"describing how to translate pages with the Django internalization module."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:15
|
#: resources/templates/resources/translate.html:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"We invite you to read it to know all the details, but it merely requires you "
|
"We invite you to read it to know all the details, but it merely requires you "
|
||||||
"to edit text files, so you see, no programming skills required ;)"
|
"to edit text files, so you see, no programming skills required ;)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:16
|
#: resources/templates/resources/translate.html:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to fork the git repository, make your changes, push them, and "
|
"You will need to fork the git repository, make your changes, push them, and "
|
||||||
"then open a pull request so that we can merge your contributions into our "
|
"then open a pull request so that we can merge your contributions into our "
|
||||||
"repository."
|
"repository."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: resources/templates/resources/translate.html:17
|
#: resources/templates/resources/translate.html:15
|
||||||
msgid "Don't hesitate to reach for help on"
|
msgid "Don't hesitate to reach for help on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12 col-md-6">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "What is 42CTF ?" %}</h3>
|
<center><h3>{% trans "What is 42CTF ?" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
<h4>{% trans "A short introduction to CTF" %}</h4>
|
<h4>{% trans "A short introduction to CTF" %}</h4>
|
||||||
{% trans "CTF stands for Capture The Flag. It is a cybersecurity competition, where participants have to solve challenges of various categories to gain points and progress on the scoreboard." %}
|
{% trans "CTF stands for Capture The Flag. It is a cybersecurity competition, where participants have to solve challenges of various categories to gain points and progress on the scoreboard." %}
|
||||||
{% trans "The challenges require participants to find sort of passwords called \"flags\" and to submit them on the platform."%}
|
{% blocktranslate %}The challenges require participants to find sort of passwords called "flags" and to submit them on the platform.{% endblocktranslate %}
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<h4>{% trans "Functionment of 42CTF" %}</h4>
|
<h4>{% trans "Functionment of 42CTF" %}</h4>
|
||||||
|
@ -30,5 +28,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,12 +1,10 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12 col-md-6">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "Create new challenges" %}</h3>
|
<center><h3>{% trans "Create new challenges" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{% trans "If you want to create new challenges for 42CTF, send us a message on " %}<a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> !<br><br>
|
{% trans "If you want to create new challenges for 42CTF, send us a message on " %}<a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a> !<br><br>
|
||||||
|
@ -18,5 +16,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,12 +1,10 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "Donate" %}</h3>
|
<center><h3>{% trans "Donate" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
<h4>{% trans "Become a 42CTF member" %}</h4>
|
<h4>{% trans "Become a 42CTF member" %}</h4>
|
||||||
|
@ -25,29 +23,37 @@
|
||||||
{% trans "However, we will not organize limited time CTF for members only, as this will be equivalent to organize paid events, and we want 42CTF to remain FREE for all." %}<br>
|
{% trans "However, we will not organize limited time CTF for members only, as this will be equivalent to organize paid events, and we want 42CTF to remain FREE for all." %}<br>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<h4>{% trans "Donate to 42CTF" %}</h4>
|
<center><h4>{% trans "Donate to 42CTF" %}</h4>
|
||||||
{% trans "You can donate to 42CTF or pay your membership with the following means:" %}<br>
|
{% trans "You can donate to 42CTF or pay your membership with the following means:" %}<br>
|
||||||
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
|
<!-- <a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
|
||||||
<!-- <div class="patreon-content"> -->
|
|
||||||
<span class="svg-box">
|
<span class="svg-box">
|
||||||
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
|
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="patreon-text">
|
<span class="patreon-text">
|
||||||
Patreon
|
Patreon
|
||||||
</span>
|
</span>
|
||||||
<!-- </div> -->
|
</a> -->
|
||||||
</a>
|
|
||||||
<a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank">
|
<a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank">
|
||||||
<img src="/static/img/paypal.png" width="200">
|
<img src="/static/img/paypal.png" width="200" style="margin-top: -10px;">
|
||||||
</a><br>
|
</a>
|
||||||
|
<!-- <a href="https://www.helloasso.com/associations/42ctf/adhesions/adhesion" target="_blank">
|
||||||
|
<img src="/static/img/hello_asso.png" width="180" style="margin-top: -10px;">
|
||||||
|
</a> -->
|
||||||
|
</center>
|
||||||
|
<br>
|
||||||
{% trans "If you would like us to add another payment method or if you want to pay in cash, send us a message !" %}<br><br>
|
{% trans "If you would like us to add another payment method or if you want to pay in cash, send us a message !" %}<br><br>
|
||||||
|
|
||||||
{% trans "If you're paying for your membership, don't forget to send us your first and last name, as well as your 42CTF pseudo." %}
|
{% trans "If you're paying for your membership, don't forget to send us your first and last name, as well as your 42CTF pseudo." %}
|
||||||
{% trans "We will only use thoe data to keep track of our members and grant you advantages, and we will never communicate them to any third party." %}
|
{% trans "We will only use thoe data to keep track of our members and grant you advantages, and we will never communicate them to any third party." %}
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
<h4>{% trans "What will we do with your money ?" %}</h4>
|
||||||
|
{% blocktranslate %}Hosting a website - and especially a CTF platform - costs money:
|
||||||
|
more precisely, it costs us <b>50 euros per month</b>.<br>
|
||||||
|
If we had <b>40 members</b> each year, it would be enough to cover the hosting of 42CTF.<br>
|
||||||
|
We currently have {{nb_members}} members. <br>
|
||||||
|
With the additional money, we could for example offer prizes for limited-time events, but we will update this page as soon as we reach this threshold :){% endblocktranslate %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,18 +1,19 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12 col-md-6">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "Edit this page" %}</h3>
|
<center><h3>{% trans "Edit this page" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{% trans "More information coming soon, but as you can guess it involves making a pull request to your favorite" %} <a href="https://github.com/Danhia/42CTF/">repository</a> ;)
|
<br>
|
||||||
|
<br>
|
||||||
|
{% trans "More information coming soon, but as you can guess it involves making a pull request to your favorite" %} <a href="https://gitea.42ctf.org/42CTF/website">repository</a> ;)
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -3,38 +3,23 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-9 col-sm-12 news-card">
|
{% block 42ctf %}
|
||||||
|
{% include "./42ctf.html" %}
|
||||||
<div class="card news-card">
|
{% endblock %}
|
||||||
<ul class="list-group">
|
{% block tools %}
|
||||||
<li class="list-group-item active">{% trans "Getting started" %}</li>
|
{% include "./tools.html" %}
|
||||||
<li class="list-group-item">
|
{% endblock %}
|
||||||
<a href="{% url 'resources:42ctf' %}">{% trans "What is 42CTF ?" %}</a></br>
|
{% block translate %}
|
||||||
<a href="{% url 'resources:tools' %}">{% trans "Recommended Tools" %}</a>
|
{% include "./translate.html" %}
|
||||||
</li>
|
{% endblock %}
|
||||||
</ul>
|
{% block create_challenge %}
|
||||||
</div>
|
{% include "./create_challenge.html" %}
|
||||||
|
{% endblock %}
|
||||||
<div class="card news-card">
|
{% block edit %}
|
||||||
<ul class="list-group">
|
{% include "./edit.html" %}
|
||||||
<li class="list-group-item active">{% trans "Technical documentation" %}</li>
|
{% endblock %}
|
||||||
<li class="list-group-item">{% trans "No docs available, contact us if you want to write some :)" %}</li>
|
{% block donate %}
|
||||||
</ul>
|
{% include "./donate.html" %}
|
||||||
</div>
|
{% endblock %}
|
||||||
<div class="card news-card">
|
|
||||||
<ul class="list-group">
|
|
||||||
<li class="list-group-item active">{% trans "Contribute" %}</li>
|
|
||||||
<li class="list-group-item">
|
|
||||||
<a href="{% url 'resources:create_challenge' %}">{% trans "Create new challenges" %}</a></br>
|
|
||||||
<a href="{% url 'resources:translate' %}">{% trans "Translate 42CTF" %}</a></br>
|
|
||||||
<a href="{% url 'resources:edit' %}">{% trans "Edit this page" %}</a></br>
|
|
||||||
<a href="{% url 'resources:donate' %}">{% trans "Donate" %}</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12 col-md-6">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "Recommended Tools" %}</h3>
|
<center><h3>{% trans "Recommended Tools" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{% trans "To get you started, we built a VM that you can simply import in" %} <a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a> {% trans "with a bunch of useful tools." %}<br>
|
{% trans "To get you started, we built a VM that you can simply import in" %} <a href="https://www.virtualbox.org/wiki/Downloads">Virtual Box</a> {% trans "with a bunch of useful tools." %}<br>
|
||||||
|
@ -27,9 +25,10 @@
|
||||||
{% trans "Additionnaly, you will need the following languages interpreters:" %}<br>
|
{% trans "Additionnaly, you will need the following languages interpreters:" %}<br>
|
||||||
- python3<br>
|
- python3<br>
|
||||||
- lua<br>
|
- lua<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,17 +1,15 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% get_current_language as lang %}
|
{% get_current_language as lang %}
|
||||||
<div class="row">
|
<div class="col-sm-12">
|
||||||
<div class="col-sm-12 col-md-9">
|
|
||||||
<div class="ctf-block">
|
<div class="ctf-block">
|
||||||
<div class="ctf-head">
|
<div class="ctf-head">
|
||||||
<h3>{% trans "Translate 42CTF" %}</h3>
|
<center><h3>{% trans "Translate 42CTF" %}</h3></center>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctf-body">
|
<div class="ctf-body">
|
||||||
{% trans "42CTF source code is publicly available on this"%} <a href="https://github.com/Danhia/42CTF/">github</a>.<br>
|
{% trans "42CTF source code is publicly available on this"%} <a href="https://gitea.42ctf.org/42CTF/website">git</a>.<br>
|
||||||
{% trans "Translation does not require any programming skill and is a good way to contribute if you want to help us, by making the platform always more accessible." %}<br><br>
|
{% trans "Translation does not require any programming skill and is a good way to contribute if you want to help us, by making the platform always more accessible." %}<br><br>
|
||||||
{% trans "We have a" %} <a href="https://github.com/Danhia/42CTF/wiki/Internationalization">wiki</a> {% trans "describing how to translate pages with the Django internalization module." %}<br>
|
{% trans "We have a" %} <a href="https://gitea.42ctf.org/42CTF/website/wiki/Internationalization">wiki</a> {% trans "describing how to translate pages with the Django internalization module." %}<br>
|
||||||
{% trans "We invite you to read it to know all the details, but it merely requires you to edit text files, so you see, no programming skills required ;)" %}
|
{% trans "We invite you to read it to know all the details, but it merely requires you to edit text files, so you see, no programming skills required ;)" %}
|
||||||
{% trans "You will need to fork the git repository, make your changes, push them, and then open a pull request so that we can merge your contributions into our repository." %}<br><br>
|
{% trans "You will need to fork the git repository, make your changes, push them, and then open a pull request so that we can merge your contributions into our repository." %}<br><br>
|
||||||
{% trans "Don't hesitate to reach for help on" %} <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a>
|
{% trans "Don't hesitate to reach for help on" %} <a class="footer_imgs" href="https://discord.gg/DwZqPpA" target="_blank"><img src="/static/img/discord.png" width="30"></a>
|
||||||
|
@ -19,5 +17,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -5,10 +5,4 @@ app_name = "resources"
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.resources, name='resources'),
|
path('', views.resources, name='resources'),
|
||||||
path('42ctf', views.ctf42, name='42ctf'),
|
|
||||||
path('tools', views.tools, name='tools'),
|
|
||||||
path('create_challenge', views.create_challenge, name='create_challenge'),
|
|
||||||
path('translate', views.translate, name='translate'),
|
|
||||||
path('edit', views.edit, name='edit'),
|
|
||||||
path('donate', views.donate, name='donate'),
|
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,26 +1,9 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.core.paginator import Paginator
|
|
||||||
from accounts.models import UserProfileInfo
|
from accounts.models import UserProfileInfo
|
||||||
|
from django.contrib.auth.models import timezone
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
def resources(request):
|
def resources(request):
|
||||||
return render(request, 'resources/resources.html')
|
nb_members = UserProfileInfo.objects.filter(member=True, member_until__gt=timezone.now()).count()
|
||||||
|
return render(request, 'resources/resources.html', {'nb_members':nb_members})
|
||||||
def ctf42(request):
|
|
||||||
return render(request, 'resources/42ctf.html')
|
|
||||||
|
|
||||||
def tools(request):
|
|
||||||
return render(request, 'resources/tools.html')
|
|
||||||
|
|
||||||
def create_challenge(request):
|
|
||||||
return render(request, 'resources/create_challenge.html')
|
|
||||||
|
|
||||||
def translate(request):
|
|
||||||
return render(request, 'resources/translate.html')
|
|
||||||
|
|
||||||
def edit(request):
|
|
||||||
return render(request, 'resources/edit.html')
|
|
||||||
|
|
||||||
def donate(request):
|
|
||||||
return render(request, 'resources/donate.html')
|
|
|
@ -1,31 +1,24 @@
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
from accounts import models as acc_models
|
from accounts.models import UserProfileInfo
|
||||||
from ctfs import models as ex_models
|
from ctfs import models as ex_models
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = 'Recomputes the score and ranking caches from the solutions'
|
help = 'Recomputes the score cache from the solutions'
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
all_sols = ex_models.CTF_flags.objects.select_related().filter(ctf__event=None)
|
all_sols = ex_models.CTF_flags.objects.select_related().filter(ctf__event=None, ctf__disabled=False)
|
||||||
|
all_users = UserProfileInfo.objects.all()
|
||||||
|
|
||||||
scores = defaultdict(int)
|
scores = defaultdict(int)
|
||||||
for sol in all_sols:
|
for sol in all_sols:
|
||||||
scores[sol.user] += sol.ctf.points
|
scores[sol.user] += sol.ctf.points
|
||||||
li = [(s, u) for (u, s) in scores.items()]
|
|
||||||
|
|
||||||
li2 = []
|
for u in all_users:
|
||||||
old_rank = None
|
if u.user not in scores.keys():
|
||||||
old_score = None
|
u.score = 0
|
||||||
rank = 0
|
u.save()
|
||||||
for (s, u) in li:
|
|
||||||
rank += 1
|
|
||||||
if s == old_score:
|
|
||||||
li2.append((u, s, old_rank))
|
|
||||||
else:
|
|
||||||
old_score = s
|
|
||||||
old_rank = rank
|
|
||||||
li2.append((u, s, rank))
|
|
||||||
|
|
||||||
for (u, s, r) in li2:
|
for u in scores:
|
||||||
u.userprofileinfo.score = s
|
u.userprofileinfo.score = scores[u]
|
||||||
u.userprofileinfo.save()
|
u.userprofileinfo.save()
|
||||||
|
|
|
@ -50,10 +50,12 @@ pre {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
background-color: #1d1d1d;
|
background-color: #1d1d1d;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
|
min-width:inherit;
|
||||||
}
|
}
|
||||||
.dropdown-item {
|
.dropdown-item {
|
||||||
color: #d9d9d9;
|
color: #d9d9d9;
|
||||||
|
@ -62,8 +64,9 @@ pre {
|
||||||
background-color: #1d1d1d;
|
background-color: #1d1d1d;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
.flag_link {
|
.nav-item{
|
||||||
margin-right: 6px;
|
padding-right: 15px;
|
||||||
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
.flag_img {
|
.flag_img {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
@ -367,6 +370,13 @@ footer {
|
||||||
.bottom-sm { order: 3 }
|
.bottom-sm { order: 3 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 992px) {
|
||||||
|
.container { display: flex; flex-flow: column; }
|
||||||
|
.top-md { order: 1; }
|
||||||
|
.middle-md { order: 2; }
|
||||||
|
.bottom-md { order: 3 }
|
||||||
|
}
|
||||||
|
|
||||||
.ctf-link {
|
.ctf-link {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
|
@ -0,0 +1,11 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icons-jp" viewBox="0 0 640 480">
|
||||||
|
<defs>
|
||||||
|
<clipPath id="jp-a">
|
||||||
|
<path fill-opacity=".7" d="M-88 32h640v480H-88z"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#jp-a)" transform="translate(88 -32)">
|
||||||
|
<path fill="#fff" d="M-128 32h720v480h-720z"/>
|
||||||
|
<circle cx="523.1" cy="344.1" r="194.9" fill="#d30000" transform="translate(-168.4 8.6) scale(.76554)"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 470 B |
|
@ -57,8 +57,6 @@
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'scoreboard:scoreboard' %}">{% translate "Scoreboard" %}</a>
|
<a class="nav-link" href="{% url 'scoreboard:scoreboard' %}">{% translate "Scoreboard" %}</a>
|
||||||
<li class="nav-item">
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'events:events' %}">{% translate "Events" %}</a>
|
<a class="nav-link" href="{% url 'events:events' %}">{% translate "Events" %}</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -67,27 +65,23 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="navbar-nav ">
|
<ul class="navbar-nav ">
|
||||||
<!-- <li class="nav-item dropdown">
|
|
||||||
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon li-patreon">
|
|
||||||
<div class="patreon-content">
|
|
||||||
<span class="svg-box">
|
|
||||||
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
|
|
||||||
</span>
|
|
||||||
<span class="patreon-text">
|
|
||||||
Patreon
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</li> -->
|
|
||||||
{% get_current_language as LANGUAGE_CODE %}
|
|
||||||
{% get_available_languages as languages %}
|
|
||||||
{% for lang_code, lang_name in languages %}
|
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="flag_link" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}">
|
{% get_current_language as LANGUAGE_CODE %}
|
||||||
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
|
<a class="nav-link" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<img class="flag_img" src="{% static "img/"|add:LANGUAGE_CODE|add:".svg" %}" alt="flag {{ LANGUAGE_CODE }}" style="margin-top: -5px;"/>
|
||||||
</a>
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
|
{% get_available_languages as languages %}
|
||||||
|
{% for lang_code, lang_name in languages %}
|
||||||
|
|
||||||
|
<a class="dropdown-item" href="{% url 'set_language' lang_code %}?next={{request.path|slice:"3:"}}">
|
||||||
|
<img class="flag_img" src="{% static "img/"|add:lang_code|add:".svg" %}" alt="flag {{ lang_name }}"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a href="{% url 'accounts:edit' %}" class="nav-link">{{ request.user.username }}</a>
|
<a href="{% url 'accounts:edit' %}" class="nav-link">{{ request.user.username }}</a>
|
||||||
|
@ -116,26 +110,23 @@
|
||||||
</div>
|
</div>
|
||||||
<footer class="container">
|
<footer class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-lg-4 col-12">
|
||||||
<a href="https://discord.gg/DwZqPpA">
|
<a href="https://discord.gg/DwZqPpA">
|
||||||
<img width="250px" src="https://discordapp.com/api/guilds/606162827274616845/widget.png?style=banner2">
|
<img width="250px" src="https://discordapp.com/api/guilds/606162827274616845/widget.png?style=banner2" style="margin-bottom:5px">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-1 col-xs-1">
|
<div class="col-lg-1 col-6">
|
||||||
<a href="https://twitter.com/42ctf">
|
<a href="https://twitter.com/42ctf">
|
||||||
<img width="50px" src="{% static "img/twitter.png" %}">
|
<img width="50px" src="{% static "img/twitter.png" %}">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2 footer-text col-xs-2">
|
<div class="col-lg-1 col-6 middle-md">
|
||||||
<p>42ctf@protonmail.com <br>Made with <img src="{% static "img/smoke.png" %}" width="20px" style="margin-top:-5px"> by <a href="https://ix-56h.github.io/">ix-56h</a> - <a href="{% url "cgu" %}">CGU</a></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-1 col-xs-1">
|
|
||||||
<a href="https://fr.linkedin.com/company/42ctf">
|
<a href="https://fr.linkedin.com/company/42ctf">
|
||||||
<img width="50px" src="{% static "img/linkedin.png" %}" style="margin-bottom:5px">
|
<img width="50px" src="{% static "img/linkedin.png" %}" style="margin-bottom:5px">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-lg-4 col-12 bottom-md">
|
||||||
<a href="https://www.patreon.com/42ctf" target="_blank" class="patreon">
|
<!-- <a href="https://www.patreon.com/42ctf" target="_blank" class="patreon">
|
||||||
<div class="patreon-content">
|
<div class="patreon-content">
|
||||||
<span class="svg-box">
|
<span class="svg-box">
|
||||||
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
|
<svg viewBox="0 0 569 546" xmlns="http://www.w3.org/2000/svg"><g><circle cx="362.589996" cy="204.589996" data-fill="1" id="Oval" r="204.589996"></circle><rect data-fill="2" height="545.799988" id="Rectangle" width="100" x="0" y="0"></rect></g></svg>
|
||||||
|
@ -144,8 +135,14 @@
|
||||||
{% trans "Become a Patron!" %}
|
{% trans "Become a Patron!" %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
</a> -->
|
||||||
|
<a href="https://www.paypal.com/donate/?hosted_button_id=M6YBYZ63MQGAY" target="_blank">
|
||||||
|
<img src="/static/img/paypal.png" width="250" style="margin-top: -20px;">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-lg-2 footer-text col-sm-12">
|
||||||
|
<p>42ctf@protonmail.com <br>Made with <img src="{% static "img/smoke.png" %}" width="20px" style="margin-top:-5px"> by <a href="https://ix-56h.github.io/">ix-56h</a> - <a href="{% url "cgu" %}">CGU</a></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<!-- Optional JavaScript -->
|
<!-- Optional JavaScript -->
|
||||||
|
|
Loading…
Reference in New Issue