Merge branch 'thubrecht/traduction' into 'master'
Thubrecht/traduction See merge request klub-dev-ens/annuaire!14
This commit is contained in:
commit
976fb86c0a
15 changed files with 463 additions and 77 deletions
|
@ -63,6 +63,7 @@ INSTALLED_APPS = [
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
"django.middleware.security.SecurityMiddleware",
|
"django.middleware.security.SecurityMiddleware",
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||||
|
"django.middleware.locale.LocaleMiddleware",
|
||||||
"django.middleware.common.CommonMiddleware",
|
"django.middleware.common.CommonMiddleware",
|
||||||
"django.middleware.csrf.CsrfViewMiddleware",
|
"django.middleware.csrf.CsrfViewMiddleware",
|
||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||||
|
@ -131,6 +132,13 @@ AUTH_PASSWORD_VALIDATORS = [
|
||||||
|
|
||||||
LANGUAGE_CODE = "fr-fr"
|
LANGUAGE_CODE = "fr-fr"
|
||||||
|
|
||||||
|
LANGUAGES = [
|
||||||
|
("fr", "Français"),
|
||||||
|
("en", "English"),
|
||||||
|
]
|
||||||
|
|
||||||
|
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
|
||||||
|
|
||||||
TIME_ZONE = "UTC"
|
TIME_ZONE = "UTC"
|
||||||
|
|
||||||
USE_I18N = True
|
USE_I18N = True
|
||||||
|
|
|
@ -21,12 +21,11 @@ from fiches.views import BirthdayView, HomeView
|
||||||
import django_cas_ng.views as cas_views
|
import django_cas_ng.views as cas_views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path("", include("fiches.urls")),
|
||||||
path('fiche/', include('fiches.urls')),
|
path("admin/", admin.site.urls),
|
||||||
path('', HomeView.as_view(), name='home'),
|
path("accounts/login/", cas_views.LoginView.as_view(), name="cas_ng_login"),
|
||||||
path('birthday', BirthdayView.as_view(), name='birthday'),
|
path("logout", cas_views.LogoutView.as_view(), name="cas_ng_logout"),
|
||||||
path('accounts/login/', cas_views.LoginView.as_view(), name='cas_ng_login'),
|
path("i18n/", include("django.conf.urls.i18n")),
|
||||||
path('logout', cas_views.LogoutView.as_view(), name='cas_ng_logout'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.forms.models import inlineformset_factory
|
from django.forms.models import inlineformset_factory
|
||||||
from fiches.models import Profile, Department, Phone, Social, Mail, Address
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
from fiches.models import Address, Department, Mail, Phone, Profile, Social
|
||||||
|
|
||||||
|
|
||||||
class ProfileForm(forms.ModelForm):
|
class ProfileForm(forms.ModelForm):
|
||||||
|
@ -10,8 +12,8 @@ class ProfileForm(forms.ModelForm):
|
||||||
|
|
||||||
|
|
||||||
class SearchForm(forms.Form):
|
class SearchForm(forms.Form):
|
||||||
name = forms.CharField(label="Nom/Surnom", max_length=1023, required=False)
|
name = forms.CharField(label=_("Nom/Surnom"), max_length=1023, required=False)
|
||||||
year = forms.IntegerField(label="Promotion", required=False)
|
year = forms.IntegerField(label=_("Promotion"), required=False)
|
||||||
department = forms.ModelMultipleChoiceField(
|
department = forms.ModelMultipleChoiceField(
|
||||||
queryset=Department.objects.all(), required=False
|
queryset=Department.objects.all(), required=False
|
||||||
)
|
)
|
||||||
|
@ -23,7 +25,7 @@ class SearchForm(forms.Form):
|
||||||
and not cleaned_data["year"]
|
and not cleaned_data["year"]
|
||||||
and not cleaned_data["department"]
|
and not cleaned_data["department"]
|
||||||
):
|
):
|
||||||
raise forms.ValidationError(("Tous les champs sont vides"), code="invalid")
|
raise forms.ValidationError(_("Tous les champs sont vides"), code="invalid")
|
||||||
|
|
||||||
|
|
||||||
PhoneFormSet = inlineformset_factory(Profile, Phone, exclude=[])
|
PhoneFormSet = inlineformset_factory(Profile, Phone, exclude=[])
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.db import models
|
|
||||||
from django.core.validators import MinValueValidator
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.core.validators import MinValueValidator
|
||||||
|
from django.db import models
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class Profile(models.Model):
|
class Profile(models.Model):
|
||||||
|
|
|
@ -147,11 +147,16 @@ body {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
#language_switch .language {
|
#language_switch .language {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
color: #DFDFDF;
|
color: #DFDFDF;
|
||||||
}
|
}
|
||||||
#language_switch .language:hover {
|
#language_switch .language:hover {
|
||||||
color: #FFDC00;
|
color: #FFDC00;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
#language_switch .language::after,
|
#language_switch .language::after,
|
||||||
#language_switch .current-language::after {
|
#language_switch .current-language::after {
|
||||||
|
@ -523,3 +528,5 @@ body {
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=annuaire.css.map */
|
||||||
|
|
|
@ -46,7 +46,7 @@ body {
|
||||||
#header {
|
#header {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#main {
|
#main {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,13 +81,18 @@ $account-area-height: 120px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
.language {
|
.language {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
// text-decoration: underline;
|
// text-decoration: underline;
|
||||||
color: colors.$page-text-secondary;
|
color: colors.$page-text-secondary;
|
||||||
}
|
}
|
||||||
|
|
||||||
.language:hover {
|
.language:hover {
|
||||||
color: colors.$main-menu-link;
|
color: colors.$main-menu-link;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.language::after,
|
.language::after,
|
||||||
|
@ -161,4 +166,4 @@ $account-area-height: 120px;
|
||||||
.clipper {
|
.clipper {
|
||||||
font-family: fonts.$monospace-fonts;
|
font-family: fonts.$monospace-fonts;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@use "common";
|
@use "common";
|
||||||
@use "header";
|
@use "header";
|
||||||
@use "content";
|
@use "content";
|
||||||
@use "footer";
|
@use "footer";
|
||||||
|
|
|
@ -17,13 +17,17 @@
|
||||||
<div id="aside">
|
<div id="aside">
|
||||||
<div id="menu">
|
<div id="menu">
|
||||||
<div id="language_switch">
|
<div id="language_switch">
|
||||||
<a class="language french {% if get_current_language == "fr" %}current-language{% endif %}" href="/fr{{ request.get_full_path|slice:'3:' }}">Français</a>
|
<form action="{% url 'set_language' %}" method="post">
|
||||||
<a class="language english {% if get_current_language == "en" %}current-language{% endif %}" href="/en{{ request.get_full_path|slice:'3:' }}">English</a>
|
{% csrf_token %}
|
||||||
|
{% get_current_language as lang %}
|
||||||
|
<input name="next" type="hidden" value="{{ request.get_full_path }}">
|
||||||
|
<button class="language {% if lang == "fr" %}current-language{% endif %}" name="language" value="fr">Français</button><button class="language {% if lang == "en" %}current-language{% endif %}" name="language" value="en">English</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="search-area" method="post" action='{% url "home" %}'>
|
<form id="search-area" method="post" action='{% url "home" %}'>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input id="id_name" name="name" type="search" placeholder="Recherche Rapide">
|
<input id="id_name" name="name" type="search" placeholder="{% trans "Recherche Rapide" %}">
|
||||||
<button type="submit">{% trans "Rechercher" %}</button>
|
<button type="submit">{% trans "Rechercher" %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@ -75,4 +79,5 @@
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
{% block extra_js %}{% endblock %}
|
{% block extra_js %}{% endblock %}
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -63,39 +63,23 @@
|
||||||
<label for="id_thurne">{% trans "Thurne :" %}</label>
|
<label for="id_thurne">{% trans "Thurne :" %}</label>
|
||||||
{{ form.thurne }}
|
{{ form.thurne }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="form-entry multi-entry" data-type-placeholder="{% trans "Personnel" %}" data-value-placeholder="{% trans "0612345678" %}">
|
||||||
class="form-entry multi-entry"
|
<label for="id_phone">{% trans "Numéro(s) de téléphone :" %}</label>
|
||||||
data-type-placeholder="{% trans "Personnel" %}"
|
|
||||||
data-value-placeholder="{% trans "0612345678" %}"
|
|
||||||
>
|
|
||||||
<label for="id_phone">{% trans "Numéro(s) de téléphone :" %}</label>
|
|
||||||
{% trans "Ajouter un numéro" as add_number %}
|
{% trans "Ajouter un numéro" as add_number %}
|
||||||
{% include "fiches/multientry.html" with formset=phone_form new_entry_text=add_number %}
|
{% include "fiches/multientry.html" with formset=phone_form new_entry_text=add_number %}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="form-entry multi-entry" data-type-placeholder="{% trans "InstaTok" %}" data-value-placeholder="{% trans "mon_profil_instatok" %}">
|
||||||
class="form-entry multi-entry"
|
|
||||||
data-type-placeholder="{% trans "InstaTok" %}"
|
|
||||||
data-value-placeholder="{% trans "mon_profil_instatok" %}"
|
|
||||||
>
|
|
||||||
<label for="id_social">{% trans "Réseaux sociaux :" %}</label>
|
<label for="id_social">{% trans "Réseaux sociaux :" %}</label>
|
||||||
{% trans "Ajouter un réseau social" as add_social %}
|
{% trans "Ajouter un réseau social" as add_social %}
|
||||||
{% include "fiches/multientry.html" with formset=social_form new_entry_text=add_social %}
|
{% include "fiches/multientry.html" with formset=social_form new_entry_text=add_social %}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="form-entry multi-entry" data-type-placeholder="{% trans "Professionelle" %}" data-value-placeholder="{% trans "moi@ens.fr" %}">
|
||||||
class="form-entry multi-entry"
|
<label for="id_mail">{% trans "Mail(s) :" %}</label>
|
||||||
data-type-placeholder="{% trans "Professionelle" %}"
|
|
||||||
data-value-placeholder="{% trans "moi@ens.fr" %}"
|
|
||||||
>
|
|
||||||
<label for="id_mail">{% trans "Mail(s):" %}</label>
|
|
||||||
{% trans "Ajouter un email" as add_mail %}
|
{% trans "Ajouter un email" as add_mail %}
|
||||||
{% include "fiches/multientry.html" with formset=mail_form new_entry_text=add_mail %}
|
{% include "fiches/multientry.html" with formset=mail_form new_entry_text=add_mail %}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="form-entry multi-entry" data-type-placeholder="{% trans "Bureau" %}" data-value-placeholder="{% trans "45 rue d'Ulm" %}">
|
||||||
class="form-entry multi-entry"
|
<label for="id_address">{% trans "Adresse(s) :" %}</label>
|
||||||
data-type-placeholder="{% trans "Bureau" %}"
|
|
||||||
data-value-placeholder="{% trans "45 rue d'Ulm" %}"
|
|
||||||
>
|
|
||||||
<label for="id_address">{% trans "Adresse(s):" %}</label>
|
|
||||||
{% trans "Ajouter une adresse" as add_address %}
|
{% trans "Ajouter une adresse" as add_address %}
|
||||||
{% include "fiches/multientry.html" with formset=address_form new_entry_text=add_address %}
|
{% include "fiches/multientry.html" with formset=address_form new_entry_text=add_address %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -120,5 +104,5 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_js %}
|
{% block extra_js %}
|
||||||
<script type="text/javascript" src="{% static "fiches/js/forms.js" %}"></script>
|
<script type="text/javascript" src="{% static "fiches/js/forms.js" %}"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<label for="id_year">{% trans "Promotion :" %}</label>
|
<label for="id_year">{% trans "Promotion :" %}</label>
|
||||||
{{ form.year }}
|
{{ form.year }}
|
||||||
|
|
||||||
<label for="id_department">{% trans "Department :" %}</label>
|
<label for="id_department">{% trans "Départment :" %}</label>
|
||||||
{{ form.department }}
|
{{ form.department }}
|
||||||
<input type="submit" value="{% trans "Recherche" %}">
|
<input type="submit" value="{% trans "Recherche" %}">
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -2,6 +2,8 @@ from django.urls import path
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("edit", views.EditView.as_view(), name="fiche_modif"),
|
path("", views.HomeView.as_view(), name="home"),
|
||||||
path("<user>", views.FicheView.as_view(), name="fiche"),
|
path("fiche/edit", views.EditView.as_view(), name="fiche_modif"),
|
||||||
|
path("fiche/<user>", views.FicheView.as_view(), name="fiche"),
|
||||||
|
path("birthday", views.BirthdayView.as_view(), name="birthday"),
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,7 +2,14 @@ from django.shortcuts import render
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from fiches.models import Profile, Phone, Social, Mail, Address
|
from fiches.models import Profile, Phone, Social, Mail, Address
|
||||||
from fiches.forms import ProfileForm, SearchForm, PhoneFormSet, SocialFormSet, MailFormSet, AddressFormSet
|
from fiches.forms import (
|
||||||
|
ProfileForm,
|
||||||
|
SearchForm,
|
||||||
|
PhoneFormSet,
|
||||||
|
SocialFormSet,
|
||||||
|
MailFormSet,
|
||||||
|
AddressFormSet,
|
||||||
|
)
|
||||||
from django.forms import formset_factory
|
from django.forms import formset_factory
|
||||||
from django.forms.models import model_to_dict
|
from django.forms.models import model_to_dict
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
@ -42,11 +49,14 @@ class EditView(UpdateView):
|
||||||
mail_form = MailFormSet(instance=self.object)
|
mail_form = MailFormSet(instance=self.object)
|
||||||
address_form = AddressFormSet(instance=self.object)
|
address_form = AddressFormSet(instance=self.object)
|
||||||
return self.render_to_response(
|
return self.render_to_response(
|
||||||
self.get_context_data(form=form,
|
self.get_context_data(
|
||||||
phone_form=phone_form,
|
form=form,
|
||||||
social_form=social_form,
|
phone_form=phone_form,
|
||||||
mail_form=mail_form,
|
social_form=social_form,
|
||||||
address_form=address_form))
|
mail_form=mail_form,
|
||||||
|
address_form=address_form,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object()
|
self.object = self.get_object()
|
||||||
|
@ -56,12 +66,21 @@ class EditView(UpdateView):
|
||||||
social_form = SocialFormSet(self.request.POST, instance=self.object)
|
social_form = SocialFormSet(self.request.POST, instance=self.object)
|
||||||
mail_form = MailFormSet(self.request.POST, instance=self.object)
|
mail_form = MailFormSet(self.request.POST, instance=self.object)
|
||||||
address_form = AddressFormSet(self.request.POST, instance=self.object)
|
address_form = AddressFormSet(self.request.POST, instance=self.object)
|
||||||
if (form.is_valid() and phone_form.is_valid() and social_form.is_valid()
|
if (
|
||||||
and mail_form.is_valid() and address_form.is_valid()):
|
form.is_valid()
|
||||||
return self.form_valid(form, phone_form, social_form, mail_form, address_form)
|
and phone_form.is_valid()
|
||||||
|
and social_form.is_valid()
|
||||||
|
and mail_form.is_valid()
|
||||||
|
and address_form.is_valid()
|
||||||
|
):
|
||||||
|
return self.form_valid(
|
||||||
|
form, phone_form, social_form, mail_form, address_form
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
return self.form_invalid(form, phone_form, social_form, mail_form, address_form)
|
return self.form_invalid(
|
||||||
|
form, phone_form, social_form, mail_form, address_form
|
||||||
|
)
|
||||||
|
|
||||||
def form_valid(self, form, phone_form, social_form, mail_form, address_form):
|
def form_valid(self, form, phone_form, social_form, mail_form, address_form):
|
||||||
self.object = form.save()
|
self.object = form.save()
|
||||||
phone_form.save()
|
phone_form.save()
|
||||||
|
@ -69,21 +88,26 @@ class EditView(UpdateView):
|
||||||
mail_form.save()
|
mail_form.save()
|
||||||
address_form.save()
|
address_form.save()
|
||||||
send_mail(
|
send_mail(
|
||||||
"Fiche annuaire modifée",
|
"Fiche annuaire modifée",
|
||||||
render_to_string("fiches/mail/mail_modif.txt", {"profile": self.get_object()}),
|
render_to_string(
|
||||||
"klub-dev@ens.psl.eu",
|
"fiches/mail/mail_modif.txt", {"profile": self.get_object()}
|
||||||
["{}@clipper.ens.psl.eu".format(self.get_object().user.username)],
|
),
|
||||||
fail_silently=False,
|
"klub-dev@ens.psl.eu",
|
||||||
)
|
["{}@clipper.ens.psl.eu".format(self.get_object().user.username)],
|
||||||
|
fail_silently=False,
|
||||||
|
)
|
||||||
return HttpResponseRedirect(self.get_success_url())
|
return HttpResponseRedirect(self.get_success_url())
|
||||||
|
|
||||||
def form_invalid(self, form, phone_form, social_form, mail_form, address_form):
|
def form_invalid(self, form, phone_form, social_form, mail_form, address_form):
|
||||||
return self.render_to_response(
|
return self.render_to_response(
|
||||||
self.get_context_data(form=form,
|
self.get_context_data(
|
||||||
phone_form=phone_form,
|
form=form,
|
||||||
social_form=social_form,
|
phone_form=phone_form,
|
||||||
mail_form=mail_form,
|
social_form=social_form,
|
||||||
address_form=address_form))
|
mail_form=mail_form,
|
||||||
|
address_form=address_form,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
return self.request.user.profile
|
return self.request.user.profile
|
||||||
|
@ -100,9 +124,9 @@ class HomeView(FormView):
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
result = Profile.objects.filter(
|
result = Profile.objects.filter(
|
||||||
Q(full_name__icontains=form.cleaned_data["name"])
|
Q(full_name__icontains=form.cleaned_data["name"])
|
||||||
| Q(nickname__icontains=form.cleaned_data["name"])
|
| Q(nickname__icontains=form.cleaned_data["name"])
|
||||||
)
|
)
|
||||||
return self.render_to_response(self.get_context_data(result=result))
|
return self.render_to_response(self.get_context_data(result=result))
|
||||||
|
|
||||||
|
|
||||||
|
@ -111,19 +135,19 @@ class BirthdayView(ListView):
|
||||||
model = Profile
|
model = Profile
|
||||||
template_name = "fiches/birthday.html"
|
template_name = "fiches/birthday.html"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
today = timezone.now()
|
today = timezone.now()
|
||||||
context['result'] = list(
|
context["result"] = list(
|
||||||
Profile.objects.filter(birth_date__day=today.day, birth_date__month=today.month)
|
Profile.objects.filter(
|
||||||
|
birth_date__day=today.day, birth_date__month=today.month
|
||||||
|
)
|
||||||
)
|
)
|
||||||
for i in range(1, 7):
|
for i in range(1, 7):
|
||||||
today = today + timedelta(days=1)
|
today = today + timedelta(days=1)
|
||||||
context['result'] += list(
|
context["result"] += list(
|
||||||
Profile.objects.filter(
|
Profile.objects.filter(
|
||||||
birth_date__day=today.day, birth_date__month=today.month
|
birth_date__day=today.day, birth_date__month=today.month
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return context
|
return context
|
||||||
|
|
BIN
locale/en/LC_MESSAGES/django.mo
Normal file
BIN
locale/en/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
350
locale/en/LC_MESSAGES/django.po
Normal file
350
locale/en/LC_MESSAGES/django.po
Normal file
|
@ -0,0 +1,350 @@
|
||||||
|
# Annuaire translations
|
||||||
|
# Copyright (C) 2021 Klub Dev ENS
|
||||||
|
# This file is distributed under the same license as the annuaire package.
|
||||||
|
# Klub Dev ENS <klub-dev@ens.fr>, 2021.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2021-01-28 00:03+0000\n"
|
||||||
|
"PO-Revision-Date: 2021-02-04 21:15+0100\n"
|
||||||
|
"Last-Translator: Tom Hubrecht <tom.hubrecht@ens.fr>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: en\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
|
|
||||||
|
#: fiches/forms.py:15
|
||||||
|
msgid "Nom/Surnom"
|
||||||
|
msgstr "Name/Nickname"
|
||||||
|
|
||||||
|
#: fiches/forms.py:16
|
||||||
|
msgid "Promotion"
|
||||||
|
msgstr "Entry year"
|
||||||
|
|
||||||
|
#: fiches/forms.py:28
|
||||||
|
msgid "Tous les champs sont vides"
|
||||||
|
msgstr "All fields are empty"
|
||||||
|
|
||||||
|
#: fiches/models.py:11
|
||||||
|
msgid "utilisateur"
|
||||||
|
msgstr "user"
|
||||||
|
|
||||||
|
#: fiches/models.py:14
|
||||||
|
msgid "nom"
|
||||||
|
msgstr "name"
|
||||||
|
|
||||||
|
#: fiches/models.py:15
|
||||||
|
msgid "surnom"
|
||||||
|
msgstr "nickname"
|
||||||
|
|
||||||
|
#: fiches/models.py:17
|
||||||
|
msgid "pronom(s) utilisé(s)"
|
||||||
|
msgstr "pronoun(s)"
|
||||||
|
|
||||||
|
#: fiches/models.py:20
|
||||||
|
msgid "photo"
|
||||||
|
msgstr "photo"
|
||||||
|
|
||||||
|
#: fiches/models.py:22
|
||||||
|
msgid "département"
|
||||||
|
msgstr "department"
|
||||||
|
|
||||||
|
#: fiches/models.py:24
|
||||||
|
msgid "promotion"
|
||||||
|
msgstr "entry year"
|
||||||
|
|
||||||
|
#: fiches/models.py:27
|
||||||
|
msgid "date de naissance"
|
||||||
|
msgstr "birth date"
|
||||||
|
|
||||||
|
#: fiches/models.py:29
|
||||||
|
msgid "thurne"
|
||||||
|
msgstr "room"
|
||||||
|
|
||||||
|
#: fiches/models.py:30
|
||||||
|
msgid "champ libre"
|
||||||
|
msgstr "free space"
|
||||||
|
|
||||||
|
#: fiches/models.py:32
|
||||||
|
msgid "apparaître sur l'annuaire papier ?"
|
||||||
|
msgstr "appear on the paper directory?"
|
||||||
|
|
||||||
|
#: fiches/models.py:35
|
||||||
|
msgid "conserver la fiche annuaire ?"
|
||||||
|
msgstr "keep the directory record?"
|
||||||
|
|
||||||
|
#: fiches/models.py:47
|
||||||
|
msgid "nom du département"
|
||||||
|
msgstr "department name"
|
||||||
|
|
||||||
|
#: fiches/models.py:56 fiches/models.py:67 fiches/models.py:78
|
||||||
|
#: fiches/models.py:89
|
||||||
|
msgid "profil"
|
||||||
|
msgstr "profile"
|
||||||
|
|
||||||
|
#: fiches/models.py:58 fiches/models.py:69 fiches/models.py:80
|
||||||
|
#: fiches/models.py:91
|
||||||
|
msgid "type"
|
||||||
|
msgstr "type"
|
||||||
|
|
||||||
|
#: fiches/models.py:59
|
||||||
|
msgid "numéro"
|
||||||
|
msgstr "number"
|
||||||
|
|
||||||
|
#: fiches/models.py:70
|
||||||
|
msgid "contenu"
|
||||||
|
msgstr "content"
|
||||||
|
|
||||||
|
#: fiches/models.py:81
|
||||||
|
msgid "adresse mail"
|
||||||
|
msgstr "e-mail"
|
||||||
|
|
||||||
|
#: fiches/models.py:92
|
||||||
|
msgid "adresse"
|
||||||
|
msgstr "address"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:10 fiches/templates/fiches/base.html:35
|
||||||
|
msgid "Annuaire des élèves de l'ENS"
|
||||||
|
msgstr "ENS student directory"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:30
|
||||||
|
msgid "Recherche Rapide"
|
||||||
|
msgstr "Quick Search"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:31
|
||||||
|
msgid "Rechercher"
|
||||||
|
msgstr "Search"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:41
|
||||||
|
msgid "Accueil"
|
||||||
|
msgstr "Home"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:42
|
||||||
|
msgid "Modifier sa fiche d'annuaire"
|
||||||
|
msgstr "Edit your directory record"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:44
|
||||||
|
msgid "Consulter sa fiche d'annuaire"
|
||||||
|
msgstr "View your directory record"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:46
|
||||||
|
msgid "Anniversaires à venir"
|
||||||
|
msgstr "Upcoming birthdays"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:52
|
||||||
|
#, python-format
|
||||||
|
msgid "Connecté en tant que <span class=\"clipper\">%(user)s</span>"
|
||||||
|
msgstr "Connected as <span class=\"clipper\">%(user)s</span>"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:53
|
||||||
|
msgid "Se déconnecter"
|
||||||
|
msgstr "Log out"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:55
|
||||||
|
msgid "Se connecter"
|
||||||
|
msgstr "Log in"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:71
|
||||||
|
msgid "Crée par KDENS · Propulsé par Django"
|
||||||
|
msgstr "Created by KDENS · Powered by Django"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:75
|
||||||
|
msgid "Page des élèves"
|
||||||
|
msgstr "Students' page"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/base.html:76
|
||||||
|
msgid "Contacter l'équipe annuaire"
|
||||||
|
msgstr "Contact the directory team"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/birthday.html:8
|
||||||
|
msgid "Anniversaires"
|
||||||
|
msgstr "Birthdays"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/birthday.html:15
|
||||||
|
msgid "ans"
|
||||||
|
msgstr "years"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:25
|
||||||
|
msgid "Pronom(s) utilisé(s)"
|
||||||
|
msgstr "Pronoun(s)"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:32
|
||||||
|
msgid "Département"
|
||||||
|
msgstr "Department"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:39
|
||||||
|
msgid "Date de naissance"
|
||||||
|
msgstr "Birth date"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:46
|
||||||
|
msgid "Thurne"
|
||||||
|
msgstr "Room"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:53
|
||||||
|
msgid "Téléphone"
|
||||||
|
msgstr "Phone number"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:64
|
||||||
|
msgid "Réseau social,Réseaux sociaux"
|
||||||
|
msgstr "Social network,Social networks"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:75
|
||||||
|
msgid "Mail,Mails"
|
||||||
|
msgstr "E-mail,E-mails"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:86
|
||||||
|
msgid "Adresse,Adresses"
|
||||||
|
msgstr "Address,Addresses"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiche.html:99
|
||||||
|
msgid "Champ libre"
|
||||||
|
msgstr "Free space"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:8
|
||||||
|
msgid "Modifier ma page d'annuaire"
|
||||||
|
msgstr "Edit my directory record"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:13
|
||||||
|
msgid "Nom :"
|
||||||
|
msgstr "Name:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:17
|
||||||
|
msgid "Surnom :"
|
||||||
|
msgstr "Nickname:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:21
|
||||||
|
msgid "Pronom(s) utilisé(s) :"
|
||||||
|
msgstr "Pronoun(s):"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:25
|
||||||
|
msgid "Photo :"
|
||||||
|
msgstr "Photo:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:39
|
||||||
|
msgid "Effacer (cochez la case) :"
|
||||||
|
msgstr "Delete (check the box):"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:44
|
||||||
|
msgid "Nouvelle photo :"
|
||||||
|
msgstr "New photo:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:51
|
||||||
|
msgid "Département :"
|
||||||
|
msgstr "Department:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:55
|
||||||
|
#: fiches/templates/fiches/home.html:14
|
||||||
|
msgid "Promotion :"
|
||||||
|
msgstr "Entry year:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:59
|
||||||
|
msgid "Date de naissance :"
|
||||||
|
msgstr "Birth date:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:63
|
||||||
|
msgid "Thurne :"
|
||||||
|
msgstr "Room :"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:66
|
||||||
|
msgid "Personnel"
|
||||||
|
msgstr "Private"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:66
|
||||||
|
msgid "0612345678"
|
||||||
|
msgstr "0612345678"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:67
|
||||||
|
msgid "Numéro(s) de téléphone :"
|
||||||
|
msgstr "Phone number(s):"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:68
|
||||||
|
msgid "Ajouter un numéro"
|
||||||
|
msgstr "Add a phone number"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:71
|
||||||
|
msgid "InstaTok"
|
||||||
|
msgstr "InstaTok"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:71
|
||||||
|
msgid "mon_profil_instatok"
|
||||||
|
msgstr "my_instatok_profile"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:72
|
||||||
|
msgid "Réseaux sociaux :"
|
||||||
|
msgstr "Social networks:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:73
|
||||||
|
msgid "Ajouter un réseau social"
|
||||||
|
msgstr "Add a social network"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:76
|
||||||
|
msgid "Professionelle"
|
||||||
|
msgstr "Professional"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:76
|
||||||
|
msgid "moi@ens.fr"
|
||||||
|
msgstr "me@ens.fr"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:77
|
||||||
|
msgid "Mail(s) :"
|
||||||
|
msgstr "E-mail(s):"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:78
|
||||||
|
msgid "Ajouter un email"
|
||||||
|
msgstr "Add an e-mail"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:81
|
||||||
|
msgid "Bureau"
|
||||||
|
msgstr "Office"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:81
|
||||||
|
msgid "45 rue d'Ulm"
|
||||||
|
msgstr "45 rue d'Ulm"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:82
|
||||||
|
msgid "Adresse(s) :"
|
||||||
|
msgstr "Address(es):"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:83
|
||||||
|
msgid "Ajouter une adresse"
|
||||||
|
msgstr "Add an address"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:87
|
||||||
|
msgid "Champ libre :"
|
||||||
|
msgstr "Free space:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:93
|
||||||
|
msgid "Apparaître sur l'annuaire papier ?"
|
||||||
|
msgstr "Appear on the paper directory?"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:97
|
||||||
|
msgid "Conserver la fiche annuaire ?"
|
||||||
|
msgstr "Keep the directory record?"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/fiches_modif.html:100
|
||||||
|
msgid "Enregistrer"
|
||||||
|
msgstr "Save"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/home.html:8
|
||||||
|
msgid "Chercher quelqu'un·e dans l'annuaire"
|
||||||
|
msgstr "Search for someone in the directory"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/home.html:11
|
||||||
|
msgid "Nom/Surnom :"
|
||||||
|
msgstr "Name/Nickname:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/home.html:17
|
||||||
|
msgid "Départment :"
|
||||||
|
msgstr "Department:"
|
||||||
|
|
||||||
|
#: fiches/templates/fiches/home.html:19
|
||||||
|
msgid "Recherche"
|
||||||
|
msgstr "Search"
|
||||||
|
|
||||||
|
#~ msgid "Department :"
|
||||||
|
#~ msgstr "Department:"
|
Loading…
Reference in a new issue