mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 06:03:20 +00:00
Create an NFC button for browser supporting NFC API
This commit is contained in:
parent
a24b1f5c2a
commit
15f51fb03f
33
core/templates/core/widgets/nfc.jinja
Normal file
33
core/templates/core/widgets/nfc.jinja
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<span>
|
||||||
|
<input type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %}>
|
||||||
|
<!-- NFC icon not available in fontawesome 4.7 -->
|
||||||
|
<button type="button" id="{{ widget.attrs.id }}_button"><i class="fa fa-tag"></i></button>
|
||||||
|
</span>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function(event) {
|
||||||
|
let button = document.getElementById("{{ widget.attrs.id }}_button");
|
||||||
|
button.addEventListener("click", async () => {
|
||||||
|
let input = document.getElementById("{{ widget.attrs.id }}");
|
||||||
|
const ndef = new NDEFReader();
|
||||||
|
await ndef.scan();
|
||||||
|
|
||||||
|
ndef.addEventListener("readingerror", () => {
|
||||||
|
alert("{{ translations.unsupported }}")
|
||||||
|
});
|
||||||
|
|
||||||
|
ndef.addEventListener("reading", ({ message, serialNumber }) => {
|
||||||
|
input.value = serialNumber.replaceAll(":", "").toUpperCase();
|
||||||
|
/* Auto submit form */
|
||||||
|
b = document.createElement("button");
|
||||||
|
input.appendChild(b)
|
||||||
|
b.click()
|
||||||
|
b.remove()
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
/* Disable feature if browser is not supported or if not HTTPS */
|
||||||
|
if (typeof NDEFReader === "undefined") {
|
||||||
|
button.remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
@ -66,7 +66,7 @@ class SelectDate(DateInput):
|
|||||||
|
|
||||||
|
|
||||||
class MarkdownInput(Textarea):
|
class MarkdownInput(Textarea):
|
||||||
template_name = "core/markdown_textarea.jinja"
|
template_name = "core/widgets/markdown_textarea.jinja"
|
||||||
|
|
||||||
def get_context(self, name, value, attrs):
|
def get_context(self, name, value, attrs):
|
||||||
context = super().get_context(name, value, attrs)
|
context = super().get_context(name, value, attrs)
|
||||||
@ -100,6 +100,15 @@ class MarkdownInput(Textarea):
|
|||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
class NFCTextInput(TextInput):
|
||||||
|
template_name = "core/widgets/nfc.jinja"
|
||||||
|
|
||||||
|
def get_context(self, name, value, attrs):
|
||||||
|
context = super().get_context(name, value, attrs)
|
||||||
|
context["translations"] = {"unsupported": _("Unsupported NFC card")}
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
class SelectFile(TextInput):
|
class SelectFile(TextInput):
|
||||||
def render(self, name, value, attrs=None, renderer=None):
|
def render(self, name, value, attrs=None, renderer=None):
|
||||||
if attrs:
|
if attrs:
|
||||||
|
@ -3,7 +3,7 @@ from ajax_select.fields import AutoCompleteSelectField, AutoCompleteSelectMultip
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from core.views.forms import SelectDate, SelectDateTime
|
from core.views.forms import NFCTextInput, SelectDate, SelectDateTime
|
||||||
from counter.models import (
|
from counter.models import (
|
||||||
BillingInfo,
|
BillingInfo,
|
||||||
Counter,
|
Counter,
|
||||||
@ -37,6 +37,9 @@ class StudentCardForm(forms.ModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = StudentCard
|
model = StudentCard
|
||||||
fields = ["uid"]
|
fields = ["uid"]
|
||||||
|
widgets = {
|
||||||
|
"uid": NFCTextInput,
|
||||||
|
}
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
cleaned_data = super().clean()
|
cleaned_data = super().clean()
|
||||||
@ -55,7 +58,10 @@ class GetUserForm(forms.Form):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
code = forms.CharField(
|
code = forms.CharField(
|
||||||
label="Code", max_length=StudentCard.UID_SIZE, required=False
|
label="Code",
|
||||||
|
max_length=StudentCard.UID_SIZE,
|
||||||
|
required=False,
|
||||||
|
widget=NFCTextInput,
|
||||||
)
|
)
|
||||||
id = AutoCompleteSelectField(
|
id = AutoCompleteSelectField(
|
||||||
"users", required=False, label=_("Select user"), help_text=None
|
"users", required=False, label=_("Select user"), help_text=None
|
||||||
@ -86,6 +92,14 @@ class GetUserForm(forms.Form):
|
|||||||
return cleaned_data
|
return cleaned_data
|
||||||
|
|
||||||
|
|
||||||
|
class NFCCardForm(forms.Form):
|
||||||
|
student_card_uid = forms.CharField(
|
||||||
|
max_length=StudentCard.UID_SIZE,
|
||||||
|
required=False,
|
||||||
|
widget=NFCTextInput,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class RefillForm(forms.ModelForm):
|
class RefillForm(forms.ModelForm):
|
||||||
error_css_class = "error"
|
error_css_class = "error"
|
||||||
required_css_class = "required"
|
required_css_class = "required"
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
{% from "core/macros.jinja" import user_mini_profile, user_subscription %}
|
{% from "core/macros.jinja" import user_mini_profile, user_subscription %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{{ counter }}
|
{{ counter }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block additional_js %}
|
{% block additional_js %}
|
||||||
<script src="{{ static('counter/js/counter_click.js') }}" defer></script>
|
<script src="{{ static('counter/js/counter_click.js') }}" defer></script>
|
||||||
<script src="{{ static('core/js/alpinejs.min.js') }}" defer></script>
|
<script src="{{ static('core/js/alpinejs.min.js') }}" defer></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block info_boxes %}
|
{% block info_boxes %}
|
||||||
@ -18,180 +18,179 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h4 id="click_interface">{{ counter }}</h4>
|
<h4 id="click_interface">{{ counter }}</h4>
|
||||||
|
|
||||||
<div id="bar-ui" x-data="counter">
|
<div id="bar-ui" x-data="counter">
|
||||||
<noscript>
|
<noscript>
|
||||||
<p class="important">Javascript is required for the counter UI.</p>
|
<p class="important">Javascript is required for the counter UI.</p>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
|
||||||
<div id="user_info">
|
<div id="user_info">
|
||||||
<h5>{% trans %}Customer{% endtrans %}</h5>
|
<h5>{% trans %}Customer{% endtrans %}</h5>
|
||||||
{{ user_mini_profile(customer.user) }}
|
{{ user_mini_profile(customer.user) }}
|
||||||
{{ user_subscription(customer.user) }}
|
{{ user_subscription(customer.user) }}
|
||||||
<p>{% trans %}Amount: {% endtrans %}{{ customer.amount }} €</p>
|
<p>{% trans %}Amount: {% endtrans %}{{ customer.amount }} €</p>
|
||||||
<form method="post" action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
<form method="post" action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="action" value="add_student_card">
|
<input type="hidden" name="action" value="add_student_card">
|
||||||
{% trans %}Add a student card{% endtrans %}
|
{% trans %}Add a student card{% endtrans %}
|
||||||
<input type="text" name="student_card_uid"/>
|
{{ student_card_input.student_card_uid }}
|
||||||
{% if request.session['not_valid_student_card_uid'] %}
|
{% if request.session['not_valid_student_card_uid'] %}
|
||||||
<p><strong>{% trans %}This is not a valid student card UID{% endtrans %}</strong></p>
|
<p><strong>{% trans %}This is not a valid student card UID{% endtrans %}</strong></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
||||||
</form>
|
</form>
|
||||||
<h6>{% trans %}Registered cards{% endtrans %}</h6>
|
<h6>{% trans %}Registered cards{% endtrans %}</h6>
|
||||||
{% if student_cards %}
|
{% if student_cards %}
|
||||||
<p>{{ student_cards }}</p>
|
<ul>
|
||||||
<ul>
|
{% for card in student_cards %}
|
||||||
{% for card in student_cards %}
|
<li>{{ card.uid }}</li>
|
||||||
<li>{{ card.uid }}</li>
|
{% endfor %}
|
||||||
{% endfor %}
|
</ul>
|
||||||
</ul>
|
{% else %}
|
||||||
{% else %}
|
{% trans %}No card registered{% endtrans %}
|
||||||
{% trans %}No card registered{% endtrans %}
|
{% endif %}
|
||||||
{% endif %}
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="click_form">
|
<div id="click_form">
|
||||||
<h5>{% trans %}Selling{% endtrans %}</h5>
|
<h5>{% trans %}Selling{% endtrans %}</h5>
|
||||||
<div>
|
<div>
|
||||||
{% set counter_click_url = url('counter:click', counter_id=counter.id, user_id=customer.user_id) %}
|
{% set counter_click_url = url('counter:click', counter_id=counter.id, user_id=customer.user_id) %}
|
||||||
|
|
||||||
{# Formulaire pour rechercher un produit en tapant son code dans une barre de recherche #}
|
{# Formulaire pour rechercher un produit en tapant son code dans une barre de recherche #}
|
||||||
<form method="post" action=""
|
<form method="post" action=""
|
||||||
class="code_form" @submit.prevent="handle_code">
|
class="code_form" @submit.prevent="handle_code">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="action" value="code">
|
<input type="hidden" name="action" value="code">
|
||||||
<label for="code_field"></label>
|
<label for="code_field"></label>
|
||||||
<input type="text" name="code" value="" class="focus" id="code_field"/>
|
<input type="text" name="code" value="" class="focus" id="code_field"/>
|
||||||
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<template x-for="error in errors">
|
<template x-for="error in errors">
|
||||||
<div class="alert alert-red" x-text="error">
|
<div class="alert alert-red" x-text="error">
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<p>{% trans %}Basket: {% endtrans %}</p>
|
<p>{% trans %}Basket: {% endtrans %}</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<template x-for="[id, item] in Object.entries(basket)" :key="id">
|
<template x-for="[id, item] in Object.entries(basket)" :key="id">
|
||||||
<div>
|
<div>
|
||||||
<form method="post" action="" class="inline del_product_form"
|
<form method="post" action="" class="inline del_product_form"
|
||||||
@submit.prevent="handle_action">
|
@submit.prevent="handle_action">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="action" value="del_product">
|
<input type="hidden" name="action" value="del_product">
|
||||||
<input type="hidden" name="product_id" :value="id">
|
<input type="hidden" name="product_id" :value="id">
|
||||||
<input type="submit" value="-"/>
|
<input type="submit" value="-"/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<span x-text="item['qty'] + item['bonus_qty']"></span>
|
<span x-text="item['qty'] + item['bonus_qty']"></span>
|
||||||
|
|
||||||
<form method="post" action="" class="inline add_product_form"
|
<form method="post" action="" class="inline add_product_form"
|
||||||
@submit.prevent="handle_action">
|
@submit.prevent="handle_action">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="action" value="add_product">
|
<input type="hidden" name="action" value="add_product">
|
||||||
<input type="hidden" name="product_id" :value="id">
|
<input type="hidden" name="product_id" :value="id">
|
||||||
<input type="submit" value="+">
|
<input type="submit" value="+">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<span x-text="products[id].name"></span> :
|
<span x-text="products[id].name"></span> :
|
||||||
<span x-text="(item['qty'] * item['price'] / 100)
|
<span x-text="(item['qty'] * item['price'] / 100)
|
||||||
.toLocaleString(undefined, { minimumFractionDigits: 2 })">
|
.toLocaleString(undefined, { minimumFractionDigits: 2 })">
|
||||||
</span> €
|
</span> €
|
||||||
<template x-if="item['bonus_qty'] > 0">P</template>
|
<template x-if="item['bonus_qty'] > 0">P</template>
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
<strong>Total: </strong>
|
|
||||||
<strong x-text="sum_basket().toLocaleString(undefined, { minimumFractionDigits: 2 })"></strong>
|
|
||||||
<strong> €</strong>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<form method="post"
|
|
||||||
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
|
||||||
{% csrf_token %}
|
|
||||||
<input type="hidden" name="action" value="finish">
|
|
||||||
<input type="submit" value="{% trans %}Finish{% endtrans %}"/>
|
|
||||||
</form>
|
|
||||||
<form method="post"
|
|
||||||
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
|
||||||
{% csrf_token %}
|
|
||||||
<input type="hidden" name="action" value="cancel">
|
|
||||||
<input type="submit" value="{% trans %}Cancel{% endtrans %}"/>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
{% if (counter.type == 'BAR' and barmens_can_refill) %}
|
</template>
|
||||||
<h5>{% trans %}Refilling{% endtrans %}</h5>
|
</ul>
|
||||||
<div>
|
<p>
|
||||||
<form method="post"
|
<strong>Total: </strong>
|
||||||
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
<strong x-text="sum_basket().toLocaleString(undefined, { minimumFractionDigits: 2 })"></strong>
|
||||||
{% csrf_token %}
|
<strong> €</strong>
|
||||||
{{ refill_form.as_p() }}
|
</p>
|
||||||
<input type="hidden" name="action" value="refill">
|
|
||||||
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="products">
|
<form method="post"
|
||||||
<ul>
|
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
||||||
{% for category in categories.keys() -%}
|
{% csrf_token %}
|
||||||
<li><a href="#cat_{{ category|slugify }}">{{ category }}</a></li>
|
<input type="hidden" name="action" value="finish">
|
||||||
{%- endfor %}
|
<input type="submit" value="{% trans %}Finish{% endtrans %}"/>
|
||||||
</ul>
|
</form>
|
||||||
{% for category in categories.keys() -%}
|
<form method="post"
|
||||||
<div id="cat_{{ category|slugify }}">
|
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
||||||
<h5>{{ category }}</h5>
|
{% csrf_token %}
|
||||||
{% for p in categories[category] -%}
|
<input type="hidden" name="action" value="cancel">
|
||||||
<form method="post"
|
<input type="submit" value="{% trans %}Cancel{% endtrans %}"/>
|
||||||
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}"
|
</form>
|
||||||
class="form_button add_product_form" @submit.prevent="handle_action">
|
</div>
|
||||||
{% csrf_token %}
|
{% if (counter.type == 'BAR' and barmens_can_refill) %}
|
||||||
<input type="hidden" name="action" value="add_product">
|
<h5>{% trans %}Refilling{% endtrans %}</h5>
|
||||||
<input type="hidden" name="product_id" value="{{ p.id }}">
|
<div>
|
||||||
<button type="submit">
|
<form method="post"
|
||||||
<strong>{{ p.name }}</strong>
|
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}">
|
||||||
{% if p.icon %}
|
{% csrf_token %}
|
||||||
<img src="{{ p.icon.url }}" alt="image de {{ p.name }}"/>
|
{{ refill_form.as_p() }}
|
||||||
{% else %}
|
<input type="hidden" name="action" value="refill">
|
||||||
<img src="{{ static('core/img/na.gif') }}" alt="image de {{ p.name }}"/>
|
<input type="submit" value="{% trans %}Go{% endtrans %}"/>
|
||||||
{% endif %}
|
</form>
|
||||||
<span>{{ p.price }} €<br>{{ p.code }}</span>
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
{%- endfor %}
|
|
||||||
</div>
|
|
||||||
{%- endfor %}
|
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="products">
|
||||||
|
<ul>
|
||||||
|
{% for category in categories.keys() -%}
|
||||||
|
<li><a href="#cat_{{ category|slugify }}">{{ category }}</a></li>
|
||||||
|
{%- endfor %}
|
||||||
|
</ul>
|
||||||
|
{% for category in categories.keys() -%}
|
||||||
|
<div id="cat_{{ category|slugify }}">
|
||||||
|
<h5>{{ category }}</h5>
|
||||||
|
{% for p in categories[category] -%}
|
||||||
|
<form method="post"
|
||||||
|
action="{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}"
|
||||||
|
class="form_button add_product_form" @submit.prevent="handle_action">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="action" value="add_product">
|
||||||
|
<input type="hidden" name="product_id" value="{{ p.id }}">
|
||||||
|
<button type="submit">
|
||||||
|
<strong>{{ p.name }}</strong>
|
||||||
|
{% if p.icon %}
|
||||||
|
<img src="{{ p.icon.url }}" alt="image de {{ p.name }}"/>
|
||||||
|
{% else %}
|
||||||
|
<img src="{{ static('core/img/na.gif') }}" alt="image de {{ p.name }}"/>
|
||||||
|
{% endif %}
|
||||||
|
<span>{{ p.price }} €<br>{{ p.code }}</span>
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
{%- endfor %}
|
||||||
|
</div>
|
||||||
|
{%- endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block script %}
|
{% block script %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
<script>
|
<script>
|
||||||
const csrf_token = "{{ csrf_token }}";
|
const csrf_token = "{{ csrf_token }}";
|
||||||
const click_api_url = "{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}";
|
const click_api_url = "{{ url('counter:click', counter_id=counter.id, user_id=customer.user.id) }}";
|
||||||
const basket = {{ request.session["basket"]|tojson }};
|
const basket = {{ request.session["basket"]|tojson }};
|
||||||
const products = {
|
const products = {
|
||||||
{%- for p in products -%}
|
{%- for p in products -%}
|
||||||
{{ p.id }}: {
|
{{ p.id }}: {
|
||||||
code: "{{ p.code }}",
|
code: "{{ p.code }}",
|
||||||
name: "{{ p.name }}",
|
name: "{{ p.name }}",
|
||||||
price: {{ p.price }},
|
price: {{ p.price }},
|
||||||
},
|
},
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
};
|
};
|
||||||
const products_autocomplete = [
|
const products_autocomplete = [
|
||||||
{% for p in products -%}
|
{% for p in products -%}
|
||||||
{
|
{
|
||||||
value: "{{ p.code }}",
|
value: "{{ p.code }}",
|
||||||
label: "{{ p.name }}",
|
label: "{{ p.name }}",
|
||||||
tags: "{{ p.code }} {{ p.name }}",
|
tags: "{{ p.code }} {{ p.name }}",
|
||||||
},
|
},
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
];
|
];
|
||||||
</script>
|
</script>
|
||||||
{% endblock script %}
|
{% endblock script %}
|
@ -61,6 +61,7 @@ from counter.forms import (
|
|||||||
CounterEditForm,
|
CounterEditForm,
|
||||||
EticketForm,
|
EticketForm,
|
||||||
GetUserForm,
|
GetUserForm,
|
||||||
|
NFCCardForm,
|
||||||
ProductEditForm,
|
ProductEditForm,
|
||||||
RefillForm,
|
RefillForm,
|
||||||
StudentCardForm,
|
StudentCardForm,
|
||||||
@ -679,6 +680,7 @@ class CounterClick(CounterTabsMixin, CanViewMixin, DetailView):
|
|||||||
)
|
)
|
||||||
kwargs["customer"] = self.customer
|
kwargs["customer"] = self.customer
|
||||||
kwargs["student_cards"] = self.customer.student_cards.all()
|
kwargs["student_cards"] = self.customer.student_cards.all()
|
||||||
|
kwargs["student_card_input"] = NFCCardForm()
|
||||||
kwargs["basket_total"] = self.sum_basket(self.request)
|
kwargs["basket_total"] = self.sum_basket(self.request)
|
||||||
kwargs["refill_form"] = self.refill_form or RefillForm()
|
kwargs["refill_form"] = self.refill_form or RefillForm()
|
||||||
kwargs["student_card_max_uid_size"] = StudentCard.UID_SIZE
|
kwargs["student_card_max_uid_size"] = StudentCard.UID_SIZE
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2024-07-24 14:33+0200\n"
|
"POT-Creation-Date: 2024-07-25 07:16+0200\n"
|
||||||
"PO-Revision-Date: 2016-07-18\n"
|
"PO-Revision-Date: 2016-07-18\n"
|
||||||
"Last-Translator: Skia <skia@libskia.so>\n"
|
"Last-Translator: Skia <skia@libskia.so>\n"
|
||||||
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
||||||
@ -651,7 +651,7 @@ msgid "Target"
|
|||||||
msgstr "Cible"
|
msgstr "Cible"
|
||||||
|
|
||||||
#: accounting/templates/accounting/journal_details.jinja:38
|
#: accounting/templates/accounting/journal_details.jinja:38
|
||||||
#: core/views/forms.py:94
|
#: core/views/forms.py:86
|
||||||
msgid "Code"
|
msgid "Code"
|
||||||
msgstr "Code"
|
msgstr "Code"
|
||||||
|
|
||||||
@ -665,7 +665,7 @@ msgid "Done"
|
|||||||
msgstr "Effectuées"
|
msgstr "Effectuées"
|
||||||
|
|
||||||
#: accounting/templates/accounting/journal_details.jinja:41
|
#: accounting/templates/accounting/journal_details.jinja:41
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:1002
|
#: counter/templates/counter/cash_summary_list.jinja:37 counter/views.py:1004
|
||||||
#: pedagogy/templates/pedagogy/moderation.jinja:13
|
#: pedagogy/templates/pedagogy/moderation.jinja:13
|
||||||
#: pedagogy/templates/pedagogy/uv_detail.jinja:138
|
#: pedagogy/templates/pedagogy/uv_detail.jinja:138
|
||||||
#: trombi/templates/trombi/comment.jinja:4
|
#: trombi/templates/trombi/comment.jinja:4
|
||||||
@ -902,11 +902,11 @@ msgstr "Opérations sans étiquette"
|
|||||||
msgid "Refound this account"
|
msgid "Refound this account"
|
||||||
msgstr "Rembourser ce compte"
|
msgstr "Rembourser ce compte"
|
||||||
|
|
||||||
#: club/forms.py:55 club/forms.py:181
|
#: club/forms.py:55 club/forms.py:185
|
||||||
msgid "Users to add"
|
msgid "Users to add"
|
||||||
msgstr "Utilisateurs à ajouter"
|
msgstr "Utilisateurs à ajouter"
|
||||||
|
|
||||||
#: club/forms.py:56 club/forms.py:182 core/views/group.py:47
|
#: club/forms.py:56 club/forms.py:186 core/views/group.py:47
|
||||||
msgid "Search users to add (one or more)."
|
msgid "Search users to add (one or more)."
|
||||||
msgstr "Recherche les utilisateurs à ajouter (un ou plus)."
|
msgstr "Recherche les utilisateurs à ajouter (un ou plus)."
|
||||||
|
|
||||||
@ -934,7 +934,7 @@ msgstr "Action"
|
|||||||
msgid "This field is required"
|
msgid "This field is required"
|
||||||
msgstr "Ce champ est obligatoire"
|
msgstr "Ce champ est obligatoire"
|
||||||
|
|
||||||
#: club/forms.py:118 club/forms.py:241 club/tests.py:712
|
#: club/forms.py:118 club/forms.py:245 club/tests.py:712
|
||||||
msgid "One of the selected users doesn't exist"
|
msgid "One of the selected users doesn't exist"
|
||||||
msgstr "Un des utilisateurs sélectionné n'existe pas"
|
msgstr "Un des utilisateurs sélectionné n'existe pas"
|
||||||
|
|
||||||
@ -950,49 +950,49 @@ msgstr "Une action est requise"
|
|||||||
msgid "You must specify at least an user or an email address"
|
msgid "You must specify at least an user or an email address"
|
||||||
msgstr "vous devez spécifier au moins un utilisateur ou une adresse email"
|
msgstr "vous devez spécifier au moins un utilisateur ou une adresse email"
|
||||||
|
|
||||||
#: club/forms.py:152 counter/forms.py:171
|
#: club/forms.py:153 counter/forms.py:186
|
||||||
msgid "Begin date"
|
msgid "Begin date"
|
||||||
msgstr "Date de début"
|
msgstr "Date de début"
|
||||||
|
|
||||||
#: club/forms.py:153 com/views.py:80 com/views.py:195 counter/forms.py:172
|
#: club/forms.py:156 com/views.py:82 com/views.py:201 counter/forms.py:189
|
||||||
#: election/views.py:164 subscription/views.py:38
|
#: election/views.py:167 subscription/views.py:38
|
||||||
msgid "End date"
|
msgid "End date"
|
||||||
msgstr "Date de fin"
|
msgstr "Date de fin"
|
||||||
|
|
||||||
#: club/forms.py:156 club/templates/club/club_sellings.jinja:21
|
#: club/forms.py:160 club/templates/club/club_sellings.jinja:21
|
||||||
#: core/templates/core/user_account_detail.jinja:18
|
#: core/templates/core/user_account_detail.jinja:18
|
||||||
#: core/templates/core/user_account_detail.jinja:51
|
#: core/templates/core/user_account_detail.jinja:51
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:151
|
#: counter/templates/counter/cash_summary_list.jinja:33 counter/views.py:152
|
||||||
msgid "Counter"
|
msgid "Counter"
|
||||||
msgstr "Comptoir"
|
msgstr "Comptoir"
|
||||||
|
|
||||||
#: club/forms.py:163 counter/views.py:734
|
#: club/forms.py:167 counter/views.py:736
|
||||||
msgid "Products"
|
msgid "Products"
|
||||||
msgstr "Produits"
|
msgstr "Produits"
|
||||||
|
|
||||||
#: club/forms.py:168 counter/views.py:739
|
#: club/forms.py:172 counter/views.py:741
|
||||||
msgid "Archived products"
|
msgid "Archived products"
|
||||||
msgstr "Produits archivés"
|
msgstr "Produits archivés"
|
||||||
|
|
||||||
#: club/forms.py:223 club/templates/club/club_members.jinja:22
|
#: club/forms.py:227 club/templates/club/club_members.jinja:22
|
||||||
#: club/templates/club/club_members.jinja:48
|
#: club/templates/club/club_members.jinja:48
|
||||||
#: core/templates/core/user_clubs.jinja:31
|
#: core/templates/core/user_clubs.jinja:31
|
||||||
msgid "Mark as old"
|
msgid "Mark as old"
|
||||||
msgstr "Marquer comme ancien"
|
msgstr "Marquer comme ancien"
|
||||||
|
|
||||||
#: club/forms.py:245
|
#: club/forms.py:249
|
||||||
msgid "User must be subscriber to take part to a club"
|
msgid "User must be subscriber to take part to a club"
|
||||||
msgstr "L'utilisateur doit être cotisant pour faire partie d'un club"
|
msgstr "L'utilisateur doit être cotisant pour faire partie d'un club"
|
||||||
|
|
||||||
#: club/forms.py:249 core/views/group.py:64
|
#: club/forms.py:253 core/views/group.py:64
|
||||||
msgid "You can not add the same user twice"
|
msgid "You can not add the same user twice"
|
||||||
msgstr "Vous ne pouvez pas ajouter deux fois le même utilisateur"
|
msgstr "Vous ne pouvez pas ajouter deux fois le même utilisateur"
|
||||||
|
|
||||||
#: club/forms.py:268
|
#: club/forms.py:272
|
||||||
msgid "You should specify a role"
|
msgid "You should specify a role"
|
||||||
msgstr "Vous devez choisir un rôle"
|
msgstr "Vous devez choisir un rôle"
|
||||||
|
|
||||||
#: club/forms.py:279 sas/views.py:118 sas/views.py:185 sas/views.py:284
|
#: club/forms.py:283 sas/views.py:118 sas/views.py:185 sas/views.py:284
|
||||||
msgid "You do not have the permission to do that"
|
msgid "You do not have the permission to do that"
|
||||||
msgstr "Vous n'avez pas la permission de faire cela"
|
msgstr "Vous n'avez pas la permission de faire cela"
|
||||||
|
|
||||||
@ -1145,7 +1145,7 @@ msgid "There are no members in this club."
|
|||||||
msgstr "Il n'y a pas de membres dans ce club."
|
msgstr "Il n'y a pas de membres dans ce club."
|
||||||
|
|
||||||
#: club/templates/club/club_members.jinja:80
|
#: club/templates/club/club_members.jinja:80
|
||||||
#: core/templates/core/file_detail.jinja:19 core/views/forms.py:333
|
#: core/templates/core/file_detail.jinja:19 core/views/forms.py:328
|
||||||
#: launderette/views.py:217 trombi/templates/trombi/detail.jinja:19
|
#: launderette/views.py:217 trombi/templates/trombi/detail.jinja:19
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "Ajouter"
|
msgstr "Ajouter"
|
||||||
@ -1353,7 +1353,7 @@ msgstr "Anciens membres"
|
|||||||
msgid "History"
|
msgid "History"
|
||||||
msgstr "Historique"
|
msgstr "Historique"
|
||||||
|
|
||||||
#: club/views.py:116 core/templates/core/base.jinja:96 core/views/user.py:220
|
#: club/views.py:116 core/templates/core/base.jinja:95 core/views/user.py:220
|
||||||
#: sas/templates/sas/picture.jinja:100 trombi/views.py:61
|
#: sas/templates/sas/picture.jinja:100 trombi/views.py:61
|
||||||
msgid "Tools"
|
msgid "Tools"
|
||||||
msgstr "Outils"
|
msgstr "Outils"
|
||||||
@ -1372,7 +1372,7 @@ msgstr "Vente"
|
|||||||
msgid "Mailing list"
|
msgid "Mailing list"
|
||||||
msgstr "Listes de diffusion"
|
msgstr "Listes de diffusion"
|
||||||
|
|
||||||
#: club/views.py:161 com/views.py:130
|
#: club/views.py:161 com/views.py:133
|
||||||
msgid "Posters list"
|
msgid "Posters list"
|
||||||
msgstr "Liste d'affiches"
|
msgstr "Liste d'affiches"
|
||||||
|
|
||||||
@ -1487,7 +1487,7 @@ msgstr "temps d'affichage"
|
|||||||
msgid "Begin date should be before end date"
|
msgid "Begin date should be before end date"
|
||||||
msgstr "La date de début doit être avant celle de fin"
|
msgstr "La date de début doit être avant celle de fin"
|
||||||
|
|
||||||
#: com/templates/com/mailing_admin.jinja:4 com/views.py:123
|
#: com/templates/com/mailing_admin.jinja:4 com/views.py:126
|
||||||
#: core/templates/core/user_tools.jinja:144
|
#: core/templates/core/user_tools.jinja:144
|
||||||
msgid "Mailing lists administration"
|
msgid "Mailing lists administration"
|
||||||
msgstr "Administration des mailing listes"
|
msgstr "Administration des mailing listes"
|
||||||
@ -1642,7 +1642,7 @@ msgid "Calls to moderate"
|
|||||||
msgstr "Appels à modérer"
|
msgstr "Appels à modérer"
|
||||||
|
|
||||||
#: com/templates/com/news_admin_list.jinja:242
|
#: com/templates/com/news_admin_list.jinja:242
|
||||||
#: core/templates/core/base.jinja:211
|
#: core/templates/core/base.jinja:210
|
||||||
msgid "Events"
|
msgid "Events"
|
||||||
msgstr "Événements"
|
msgstr "Événements"
|
||||||
|
|
||||||
@ -1803,7 +1803,7 @@ msgid "Slideshow"
|
|||||||
msgstr "Diaporama"
|
msgstr "Diaporama"
|
||||||
|
|
||||||
#: com/templates/com/weekmail.jinja:5 com/templates/com/weekmail.jinja:9
|
#: com/templates/com/weekmail.jinja:5 com/templates/com/weekmail.jinja:9
|
||||||
#: com/views.py:100 core/templates/core/user_tools.jinja:137
|
#: com/views.py:103 core/templates/core/user_tools.jinja:137
|
||||||
msgid "Weekmail"
|
msgid "Weekmail"
|
||||||
msgstr "Weekmail"
|
msgstr "Weekmail"
|
||||||
|
|
||||||
@ -1904,56 +1904,56 @@ msgstr "Le mot de la fin"
|
|||||||
msgid "Format: 16:9 | Resolution: 1920x1080"
|
msgid "Format: 16:9 | Resolution: 1920x1080"
|
||||||
msgstr "Format : 16:9 | Résolution : 1920x1080"
|
msgstr "Format : 16:9 | Résolution : 1920x1080"
|
||||||
|
|
||||||
#: com/views.py:76 com/views.py:194 election/views.py:163
|
#: com/views.py:76 com/views.py:198 election/views.py:164
|
||||||
#: subscription/views.py:35
|
#: subscription/views.py:35
|
||||||
msgid "Start date"
|
msgid "Start date"
|
||||||
msgstr "Date de début"
|
msgstr "Date de début"
|
||||||
|
|
||||||
#: com/views.py:95
|
#: com/views.py:98
|
||||||
msgid "Communication administration"
|
msgid "Communication administration"
|
||||||
msgstr "Administration de la communication"
|
msgstr "Administration de la communication"
|
||||||
|
|
||||||
#: com/views.py:106 core/templates/core/user_tools.jinja:138
|
#: com/views.py:109 core/templates/core/user_tools.jinja:138
|
||||||
msgid "Weekmail destinations"
|
msgid "Weekmail destinations"
|
||||||
msgstr "Destinataires du Weekmail"
|
msgstr "Destinataires du Weekmail"
|
||||||
|
|
||||||
#: com/views.py:110
|
#: com/views.py:113
|
||||||
msgid "Info message"
|
msgid "Info message"
|
||||||
msgstr "Message d'info"
|
msgstr "Message d'info"
|
||||||
|
|
||||||
#: com/views.py:116
|
#: com/views.py:119
|
||||||
msgid "Alert message"
|
msgid "Alert message"
|
||||||
msgstr "Message d'alerte"
|
msgstr "Message d'alerte"
|
||||||
|
|
||||||
#: com/views.py:137
|
#: com/views.py:140
|
||||||
msgid "Screens list"
|
msgid "Screens list"
|
||||||
msgstr "Liste d'écrans"
|
msgstr "Liste d'écrans"
|
||||||
|
|
||||||
#: com/views.py:196
|
#: com/views.py:203
|
||||||
msgid "Until"
|
msgid "Until"
|
||||||
msgstr "Jusqu'à"
|
msgstr "Jusqu'à"
|
||||||
|
|
||||||
#: com/views.py:198
|
#: com/views.py:205
|
||||||
msgid "Automoderation"
|
msgid "Automoderation"
|
||||||
msgstr "Automodération"
|
msgstr "Automodération"
|
||||||
|
|
||||||
#: com/views.py:205 com/views.py:209 com/views.py:223
|
#: com/views.py:212 com/views.py:216 com/views.py:230
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "Ce champ est obligatoire."
|
msgstr "Ce champ est obligatoire."
|
||||||
|
|
||||||
#: com/views.py:219
|
#: com/views.py:226
|
||||||
msgid "You crazy? You can not finish an event before starting it."
|
msgid "You crazy? You can not finish an event before starting it."
|
||||||
msgstr "T'es fou? Un événement ne peut pas finir avant même de commencer."
|
msgstr "T'es fou? Un événement ne peut pas finir avant même de commencer."
|
||||||
|
|
||||||
#: com/views.py:443
|
#: com/views.py:450
|
||||||
msgid "Delete and save to regenerate"
|
msgid "Delete and save to regenerate"
|
||||||
msgstr "Supprimer et sauver pour régénérer"
|
msgstr "Supprimer et sauver pour régénérer"
|
||||||
|
|
||||||
#: com/views.py:458
|
#: com/views.py:465
|
||||||
msgid "Weekmail of the "
|
msgid "Weekmail of the "
|
||||||
msgstr "Weekmail du "
|
msgstr "Weekmail du "
|
||||||
|
|
||||||
#: com/views.py:562
|
#: com/views.py:569
|
||||||
msgid ""
|
msgid ""
|
||||||
"You must be a board member of the selected club to post in the Weekmail."
|
"You must be a board member of the selected club to post in the Weekmail."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2390,18 +2390,18 @@ msgstr "500, Erreur Serveur"
|
|||||||
msgid "Welcome!"
|
msgid "Welcome!"
|
||||||
msgstr "Bienvenue !"
|
msgstr "Bienvenue !"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:54 core/templates/core/login.jinja:8
|
#: core/templates/core/base.jinja:53 core/templates/core/login.jinja:8
|
||||||
#: core/templates/core/login.jinja:18 core/templates/core/login.jinja:51
|
#: core/templates/core/login.jinja:18 core/templates/core/login.jinja:51
|
||||||
#: core/templates/core/password_reset_complete.jinja:5
|
#: core/templates/core/password_reset_complete.jinja:5
|
||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Connexion"
|
msgstr "Connexion"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:55 core/templates/core/register.jinja:7
|
#: core/templates/core/base.jinja:54 core/templates/core/register.jinja:7
|
||||||
#: core/templates/core/register.jinja:16 core/templates/core/register.jinja:22
|
#: core/templates/core/register.jinja:16 core/templates/core/register.jinja:22
|
||||||
msgid "Register"
|
msgid "Register"
|
||||||
msgstr "Inscription"
|
msgstr "Inscription"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:61 core/templates/core/base.jinja:62
|
#: core/templates/core/base.jinja:60 core/templates/core/base.jinja:61
|
||||||
#: forum/templates/forum/macros.jinja:171
|
#: forum/templates/forum/macros.jinja:171
|
||||||
#: forum/templates/forum/macros.jinja:175
|
#: forum/templates/forum/macros.jinja:175
|
||||||
#: matmat/templates/matmat/search_form.jinja:37
|
#: matmat/templates/matmat/search_form.jinja:37
|
||||||
@ -2410,52 +2410,52 @@ msgstr "Inscription"
|
|||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Recherche"
|
msgstr "Recherche"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:97
|
#: core/templates/core/base.jinja:96
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:145
|
#: core/templates/core/base.jinja:144
|
||||||
msgid "You do not have any unread notification"
|
msgid "You do not have any unread notification"
|
||||||
msgstr "Vous n'avez aucune notification non lue"
|
msgstr "Vous n'avez aucune notification non lue"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:150
|
#: core/templates/core/base.jinja:149
|
||||||
msgid "View more"
|
msgid "View more"
|
||||||
msgstr "Voir plus"
|
msgstr "Voir plus"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:153
|
#: core/templates/core/base.jinja:152
|
||||||
#: forum/templates/forum/last_unread.jinja:17
|
#: forum/templates/forum/last_unread.jinja:17
|
||||||
msgid "Mark all as read"
|
msgid "Mark all as read"
|
||||||
msgstr "Marquer tout comme lu"
|
msgstr "Marquer tout comme lu"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:201
|
#: core/templates/core/base.jinja:200
|
||||||
msgid "Main"
|
msgid "Main"
|
||||||
msgstr "Accueil"
|
msgstr "Accueil"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:203
|
#: core/templates/core/base.jinja:202
|
||||||
msgid "Associations & Clubs"
|
msgid "Associations & Clubs"
|
||||||
msgstr "Associations & Clubs"
|
msgstr "Associations & Clubs"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:205
|
#: core/templates/core/base.jinja:204
|
||||||
msgid "AE"
|
msgid "AE"
|
||||||
msgstr "L'AE"
|
msgstr "L'AE"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:206
|
#: core/templates/core/base.jinja:205
|
||||||
msgid "AE's clubs"
|
msgid "AE's clubs"
|
||||||
msgstr "Les clubs de L'AE"
|
msgstr "Les clubs de L'AE"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:207
|
#: core/templates/core/base.jinja:206
|
||||||
msgid "Others UTBM's Associations"
|
msgid "Others UTBM's Associations"
|
||||||
msgstr "Les autres associations de l'UTBM"
|
msgstr "Les autres associations de l'UTBM"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:213 core/templates/core/user_tools.jinja:180
|
#: core/templates/core/base.jinja:212 core/templates/core/user_tools.jinja:180
|
||||||
msgid "Elections"
|
msgid "Elections"
|
||||||
msgstr "Élections"
|
msgstr "Élections"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:214
|
#: core/templates/core/base.jinja:213
|
||||||
msgid "Big event"
|
msgid "Big event"
|
||||||
msgstr "Grandes Activités"
|
msgstr "Grandes Activités"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:217
|
#: core/templates/core/base.jinja:216
|
||||||
#: forum/templates/forum/favorite_topics.jinja:14
|
#: forum/templates/forum/favorite_topics.jinja:14
|
||||||
#: forum/templates/forum/last_unread.jinja:14
|
#: forum/templates/forum/last_unread.jinja:14
|
||||||
#: forum/templates/forum/macros.jinja:90 forum/templates/forum/main.jinja:6
|
#: forum/templates/forum/macros.jinja:90 forum/templates/forum/main.jinja:6
|
||||||
@ -2464,11 +2464,11 @@ msgstr "Grandes Activités"
|
|||||||
msgid "Forum"
|
msgid "Forum"
|
||||||
msgstr "Forum"
|
msgstr "Forum"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:218
|
#: core/templates/core/base.jinja:217
|
||||||
msgid "Gallery"
|
msgid "Gallery"
|
||||||
msgstr "Photos"
|
msgstr "Photos"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:219 counter/models.py:365
|
#: core/templates/core/base.jinja:218 counter/models.py:365
|
||||||
#: counter/templates/counter/counter_list.jinja:11
|
#: counter/templates/counter/counter_list.jinja:11
|
||||||
#: eboutic/templates/eboutic/eboutic_main.jinja:4
|
#: eboutic/templates/eboutic/eboutic_main.jinja:4
|
||||||
#: eboutic/templates/eboutic/eboutic_main.jinja:23
|
#: eboutic/templates/eboutic/eboutic_main.jinja:23
|
||||||
@ -2478,79 +2478,79 @@ msgstr "Photos"
|
|||||||
msgid "Eboutic"
|
msgid "Eboutic"
|
||||||
msgstr "Eboutic"
|
msgstr "Eboutic"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:221
|
#: core/templates/core/base.jinja:220
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Services"
|
msgstr "Services"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:223
|
#: core/templates/core/base.jinja:222
|
||||||
msgid "Matmatronch"
|
msgid "Matmatronch"
|
||||||
msgstr "Matmatronch"
|
msgstr "Matmatronch"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:224 launderette/models.py:38
|
#: core/templates/core/base.jinja:223 launderette/models.py:38
|
||||||
#: launderette/templates/launderette/launderette_book.jinja:5
|
#: launderette/templates/launderette/launderette_book.jinja:5
|
||||||
#: launderette/templates/launderette/launderette_book_choose.jinja:4
|
#: launderette/templates/launderette/launderette_book_choose.jinja:4
|
||||||
#: launderette/templates/launderette/launderette_main.jinja:4
|
#: launderette/templates/launderette/launderette_main.jinja:4
|
||||||
msgid "Launderette"
|
msgid "Launderette"
|
||||||
msgstr "Laverie"
|
msgstr "Laverie"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:225 core/templates/core/file.jinja:20
|
#: core/templates/core/base.jinja:224 core/templates/core/file.jinja:20
|
||||||
#: core/views/files.py:108
|
#: core/views/files.py:108
|
||||||
msgid "Files"
|
msgid "Files"
|
||||||
msgstr "Fichiers"
|
msgstr "Fichiers"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:226 core/templates/core/user_tools.jinja:171
|
#: core/templates/core/base.jinja:225 core/templates/core/user_tools.jinja:171
|
||||||
msgid "Pedagogy"
|
msgid "Pedagogy"
|
||||||
msgstr "Pédagogie"
|
msgstr "Pédagogie"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:230
|
#: core/templates/core/base.jinja:229
|
||||||
msgid "My Benefits"
|
msgid "My Benefits"
|
||||||
msgstr "Mes Avantages"
|
msgstr "Mes Avantages"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:232
|
#: core/templates/core/base.jinja:231
|
||||||
msgid "Sponsors"
|
msgid "Sponsors"
|
||||||
msgstr "Partenaires"
|
msgstr "Partenaires"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:233
|
#: core/templates/core/base.jinja:232
|
||||||
msgid "Subscriber benefits"
|
msgid "Subscriber benefits"
|
||||||
msgstr "Les avantages cotisants"
|
msgstr "Les avantages cotisants"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:237
|
#: core/templates/core/base.jinja:236
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Aide"
|
msgstr "Aide"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:239
|
#: core/templates/core/base.jinja:238
|
||||||
msgid "FAQ"
|
msgid "FAQ"
|
||||||
msgstr "FAQ"
|
msgstr "FAQ"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:240 core/templates/core/base.jinja:280
|
#: core/templates/core/base.jinja:239 core/templates/core/base.jinja:279
|
||||||
msgid "Contacts"
|
msgid "Contacts"
|
||||||
msgstr "Contacts"
|
msgstr "Contacts"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:241
|
#: core/templates/core/base.jinja:240
|
||||||
msgid "Wiki"
|
msgid "Wiki"
|
||||||
msgstr "Wiki"
|
msgstr "Wiki"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:281
|
#: core/templates/core/base.jinja:280
|
||||||
msgid "Legal notices"
|
msgid "Legal notices"
|
||||||
msgstr "Mentions légales"
|
msgstr "Mentions légales"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:282
|
#: core/templates/core/base.jinja:281
|
||||||
msgid "Intellectual property"
|
msgid "Intellectual property"
|
||||||
msgstr "Propriété intellectuelle"
|
msgstr "Propriété intellectuelle"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:283
|
#: core/templates/core/base.jinja:282
|
||||||
msgid "Help & Documentation"
|
msgid "Help & Documentation"
|
||||||
msgstr "Aide & Documentation"
|
msgstr "Aide & Documentation"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:284
|
#: core/templates/core/base.jinja:283
|
||||||
msgid "R&D"
|
msgid "R&D"
|
||||||
msgstr "R&D"
|
msgstr "R&D"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:287
|
#: core/templates/core/base.jinja:286
|
||||||
msgid "Site created by the IT Department of the AE"
|
msgid "Site created by the IT Department of the AE"
|
||||||
msgstr "Site réalisé par le Pôle Informatique de l'AE"
|
msgstr "Site réalisé par le Pôle Informatique de l'AE"
|
||||||
|
|
||||||
#: core/templates/core/base.jinja:293
|
#: core/templates/core/base.jinja:292
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#| msgid "Site version:"
|
#| msgid "Site version:"
|
||||||
msgid "Sith version:"
|
msgid "Sith version:"
|
||||||
@ -2581,7 +2581,7 @@ msgstr "Confirmation"
|
|||||||
|
|
||||||
#: core/templates/core/delete_confirm.jinja:20
|
#: core/templates/core/delete_confirm.jinja:20
|
||||||
#: core/templates/core/file_delete_confirm.jinja:14
|
#: core/templates/core/file_delete_confirm.jinja:14
|
||||||
#: counter/templates/counter/counter_click.jinja:122
|
#: counter/templates/counter/counter_click.jinja:121
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
@ -3074,7 +3074,7 @@ msgid "Eboutic invoices"
|
|||||||
msgstr "Facture eboutic"
|
msgstr "Facture eboutic"
|
||||||
|
|
||||||
#: core/templates/core/user_account.jinja:57
|
#: core/templates/core/user_account.jinja:57
|
||||||
#: core/templates/core/user_tools.jinja:58 counter/views.py:759
|
#: core/templates/core/user_tools.jinja:58 counter/views.py:761
|
||||||
msgid "Etickets"
|
msgid "Etickets"
|
||||||
msgstr "Etickets"
|
msgstr "Etickets"
|
||||||
|
|
||||||
@ -3330,7 +3330,7 @@ msgstr "A modérer"
|
|||||||
msgid "Picture Unavailable"
|
msgid "Picture Unavailable"
|
||||||
msgstr "Photo Indisponible"
|
msgstr "Photo Indisponible"
|
||||||
|
|
||||||
#: core/templates/core/user_pictures.jinja:82
|
#: core/templates/core/user_pictures.jinja:83
|
||||||
msgid "pictures"
|
msgid "pictures"
|
||||||
msgstr "photos"
|
msgstr "photos"
|
||||||
|
|
||||||
@ -3400,7 +3400,7 @@ msgstr "Achats"
|
|||||||
msgid "Product top 10"
|
msgid "Product top 10"
|
||||||
msgstr "Top 10 produits"
|
msgstr "Top 10 produits"
|
||||||
|
|
||||||
#: core/templates/core/user_stats.jinja:43 counter/forms.py:182
|
#: core/templates/core/user_stats.jinja:43 counter/forms.py:200
|
||||||
msgid "Product"
|
msgid "Product"
|
||||||
msgstr "Produit"
|
msgstr "Produit"
|
||||||
|
|
||||||
@ -3445,8 +3445,8 @@ msgstr "Cotisations"
|
|||||||
msgid "Subscription stats"
|
msgid "Subscription stats"
|
||||||
msgstr "Statistiques de cotisation"
|
msgstr "Statistiques de cotisation"
|
||||||
|
|
||||||
#: core/templates/core/user_tools.jinja:48 counter/forms.py:145
|
#: core/templates/core/user_tools.jinja:48 counter/forms.py:159
|
||||||
#: counter/views.py:729
|
#: counter/views.py:731
|
||||||
msgid "Counters"
|
msgid "Counters"
|
||||||
msgstr "Comptoirs"
|
msgstr "Comptoirs"
|
||||||
|
|
||||||
@ -3463,12 +3463,12 @@ msgid "Product types management"
|
|||||||
msgstr "Gestion des types de produit"
|
msgstr "Gestion des types de produit"
|
||||||
|
|
||||||
#: core/templates/core/user_tools.jinja:56
|
#: core/templates/core/user_tools.jinja:56
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:749
|
#: counter/templates/counter/cash_summary_list.jinja:23 counter/views.py:751
|
||||||
msgid "Cash register summaries"
|
msgid "Cash register summaries"
|
||||||
msgstr "Relevés de caisse"
|
msgstr "Relevés de caisse"
|
||||||
|
|
||||||
#: core/templates/core/user_tools.jinja:57
|
#: core/templates/core/user_tools.jinja:57
|
||||||
#: counter/templates/counter/invoices_call.jinja:4 counter/views.py:754
|
#: counter/templates/counter/invoices_call.jinja:4 counter/views.py:756
|
||||||
msgid "Invoices call"
|
msgid "Invoices call"
|
||||||
msgstr "Appels à facture"
|
msgstr "Appels à facture"
|
||||||
|
|
||||||
@ -3582,7 +3582,7 @@ msgstr "Ajouter un nouveau dossier"
|
|||||||
msgid "Error creating folder %(folder_name)s: %(msg)s"
|
msgid "Error creating folder %(folder_name)s: %(msg)s"
|
||||||
msgstr "Erreur de création du dossier %(folder_name)s : %(msg)s"
|
msgstr "Erreur de création du dossier %(folder_name)s : %(msg)s"
|
||||||
|
|
||||||
#: core/views/files.py:145 core/views/forms.py:298 core/views/forms.py:305
|
#: core/views/files.py:145 core/views/forms.py:293 core/views/forms.py:300
|
||||||
#: sas/views.py:82
|
#: sas/views.py:82
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Error uploading file %(file_name)s: %(msg)s"
|
msgid "Error uploading file %(file_name)s: %(msg)s"
|
||||||
@ -3592,91 +3592,95 @@ msgstr "Erreur d'envoi du fichier %(file_name)s : %(msg)s"
|
|||||||
msgid "Apply rights recursively"
|
msgid "Apply rights recursively"
|
||||||
msgstr "Appliquer les droits récursivement"
|
msgstr "Appliquer les droits récursivement"
|
||||||
|
|
||||||
#: core/views/forms.py:87
|
#: core/views/forms.py:79
|
||||||
msgid "Heading"
|
msgid "Heading"
|
||||||
msgstr "Titre"
|
msgstr "Titre"
|
||||||
|
|
||||||
#: core/views/forms.py:88
|
#: core/views/forms.py:80
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr "Italique"
|
msgstr "Italique"
|
||||||
|
|
||||||
#: core/views/forms.py:89
|
#: core/views/forms.py:81
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr "Gras"
|
msgstr "Gras"
|
||||||
|
|
||||||
#: core/views/forms.py:90
|
#: core/views/forms.py:82
|
||||||
msgid "Strikethrough"
|
msgid "Strikethrough"
|
||||||
msgstr "Barré"
|
msgstr "Barré"
|
||||||
|
|
||||||
#: core/views/forms.py:91
|
#: core/views/forms.py:83
|
||||||
msgid "Underline"
|
msgid "Underline"
|
||||||
msgstr "Souligné"
|
msgstr "Souligné"
|
||||||
|
|
||||||
#: core/views/forms.py:92
|
#: core/views/forms.py:84
|
||||||
msgid "Superscript"
|
msgid "Superscript"
|
||||||
msgstr "Exposant"
|
msgstr "Exposant"
|
||||||
|
|
||||||
#: core/views/forms.py:93
|
#: core/views/forms.py:85
|
||||||
msgid "Subscript"
|
msgid "Subscript"
|
||||||
msgstr "Indice"
|
msgstr "Indice"
|
||||||
|
|
||||||
#: core/views/forms.py:95
|
#: core/views/forms.py:87
|
||||||
msgid "Quote"
|
msgid "Quote"
|
||||||
msgstr "Citation"
|
msgstr "Citation"
|
||||||
|
|
||||||
#: core/views/forms.py:96
|
#: core/views/forms.py:88
|
||||||
msgid "Unordered list"
|
msgid "Unordered list"
|
||||||
msgstr "Liste non ordonnée"
|
msgstr "Liste non ordonnée"
|
||||||
|
|
||||||
#: core/views/forms.py:97
|
#: core/views/forms.py:89
|
||||||
msgid "Ordered list"
|
msgid "Ordered list"
|
||||||
msgstr "Liste ordonnée"
|
msgstr "Liste ordonnée"
|
||||||
|
|
||||||
#: core/views/forms.py:98
|
#: core/views/forms.py:90
|
||||||
msgid "Insert image"
|
msgid "Insert image"
|
||||||
msgstr "Insérer image"
|
msgstr "Insérer image"
|
||||||
|
|
||||||
#: core/views/forms.py:99
|
#: core/views/forms.py:91
|
||||||
msgid "Insert link"
|
msgid "Insert link"
|
||||||
msgstr "Insérer lien"
|
msgstr "Insérer lien"
|
||||||
|
|
||||||
#: core/views/forms.py:100
|
#: core/views/forms.py:92
|
||||||
msgid "Insert table"
|
msgid "Insert table"
|
||||||
msgstr "Insérer tableau"
|
msgstr "Insérer tableau"
|
||||||
|
|
||||||
#: core/views/forms.py:101
|
#: core/views/forms.py:93
|
||||||
msgid "Clean block"
|
msgid "Clean block"
|
||||||
msgstr "Nettoyer bloc"
|
msgstr "Nettoyer bloc"
|
||||||
|
|
||||||
#: core/views/forms.py:102
|
#: core/views/forms.py:94
|
||||||
msgid "Toggle preview"
|
msgid "Toggle preview"
|
||||||
msgstr "Activer la prévisualisation"
|
msgstr "Activer la prévisualisation"
|
||||||
|
|
||||||
#: core/views/forms.py:103
|
#: core/views/forms.py:95
|
||||||
msgid "Toggle side by side"
|
msgid "Toggle side by side"
|
||||||
msgstr "Activer la vue côte à côte"
|
msgstr "Activer la vue côte à côte"
|
||||||
|
|
||||||
#: core/views/forms.py:104
|
#: core/views/forms.py:96
|
||||||
msgid "Toggle fullscreen"
|
msgid "Toggle fullscreen"
|
||||||
msgstr "Activer le plein écran"
|
msgstr "Activer le plein écran"
|
||||||
|
|
||||||
#: core/views/forms.py:105
|
#: core/views/forms.py:97
|
||||||
msgid "Markdown guide"
|
msgid "Markdown guide"
|
||||||
msgstr "Guide markdown"
|
msgstr "Guide markdown"
|
||||||
|
|
||||||
#: core/views/forms.py:121 core/views/forms.py:129
|
#: core/views/forms.py:108
|
||||||
|
msgid "Unsupported NFC card"
|
||||||
|
msgstr "Carte NFC non supportée"
|
||||||
|
|
||||||
|
#: core/views/forms.py:122 core/views/forms.py:130
|
||||||
msgid "Choose file"
|
msgid "Choose file"
|
||||||
msgstr "Choisir un fichier"
|
msgstr "Choisir un fichier"
|
||||||
|
|
||||||
#: core/views/forms.py:145 core/views/forms.py:153
|
#: core/views/forms.py:146 core/views/forms.py:154
|
||||||
msgid "Choose user"
|
msgid "Choose user"
|
||||||
msgstr "Choisir un utilisateur"
|
msgstr "Choisir un utilisateur"
|
||||||
|
|
||||||
#: core/views/forms.py:185
|
#: core/views/forms.py:186
|
||||||
msgid "Username, email, or account number"
|
msgid "Username, email, or account number"
|
||||||
msgstr "Nom d'utilisateur, email, ou numéro de compte AE"
|
msgstr "Nom d'utilisateur, email, ou numéro de compte AE"
|
||||||
|
|
||||||
#: core/views/forms.py:244
|
#: core/views/forms.py:245
|
||||||
msgid ""
|
msgid ""
|
||||||
"Profile: you need to be visible on the picture, in order to be recognized (e."
|
"Profile: you need to be visible on the picture, in order to be recognized (e."
|
||||||
"g. by the barmen)"
|
"g. by the barmen)"
|
||||||
@ -3684,36 +3688,36 @@ msgstr ""
|
|||||||
"Photo de profil: vous devez être visible sur la photo afin d'être reconnu "
|
"Photo de profil: vous devez être visible sur la photo afin d'être reconnu "
|
||||||
"(par exemple par les barmen)"
|
"(par exemple par les barmen)"
|
||||||
|
|
||||||
#: core/views/forms.py:246
|
#: core/views/forms.py:247
|
||||||
msgid "Avatar: used on the forum"
|
msgid "Avatar: used on the forum"
|
||||||
msgstr "Avatar : utilisé sur le forum"
|
msgstr "Avatar : utilisé sur le forum"
|
||||||
|
|
||||||
#: core/views/forms.py:247
|
#: core/views/forms.py:248
|
||||||
msgid "Scrub: let other know how your scrub looks like!"
|
msgid "Scrub: let other know how your scrub looks like!"
|
||||||
msgstr "Blouse : montrez aux autres à quoi ressemble votre blouse !"
|
msgstr "Blouse : montrez aux autres à quoi ressemble votre blouse !"
|
||||||
|
|
||||||
#: core/views/forms.py:309
|
#: core/views/forms.py:304
|
||||||
msgid "Bad image format, only jpeg, png, and gif are accepted"
|
msgid "Bad image format, only jpeg, png, and gif are accepted"
|
||||||
msgstr "Mauvais format d'image, seuls les jpeg, png, et gif sont acceptés"
|
msgstr "Mauvais format d'image, seuls les jpeg, png, et gif sont acceptés"
|
||||||
|
|
||||||
#: core/views/forms.py:330
|
#: core/views/forms.py:325
|
||||||
msgid "Godfather / Godmother"
|
msgid "Godfather / Godmother"
|
||||||
msgstr "Parrain / Marraine"
|
msgstr "Parrain / Marraine"
|
||||||
|
|
||||||
#: core/views/forms.py:331
|
#: core/views/forms.py:326
|
||||||
msgid "Godchild"
|
msgid "Godchild"
|
||||||
msgstr "Fillot / Fillote"
|
msgstr "Fillot / Fillote"
|
||||||
|
|
||||||
#: core/views/forms.py:336 counter/forms.py:61 trombi/views.py:149
|
#: core/views/forms.py:331 counter/forms.py:67 trombi/views.py:149
|
||||||
msgid "Select user"
|
msgid "Select user"
|
||||||
msgstr "Choisir un utilisateur"
|
msgstr "Choisir un utilisateur"
|
||||||
|
|
||||||
#: core/views/forms.py:349 core/views/forms.py:367 election/models.py:22
|
#: core/views/forms.py:344 core/views/forms.py:362 election/models.py:22
|
||||||
#: election/views.py:147
|
#: election/views.py:147
|
||||||
msgid "edit groups"
|
msgid "edit groups"
|
||||||
msgstr "groupe d'édition"
|
msgstr "groupe d'édition"
|
||||||
|
|
||||||
#: core/views/forms.py:352 core/views/forms.py:370 election/models.py:29
|
#: core/views/forms.py:347 core/views/forms.py:365 election/models.py:29
|
||||||
#: election/views.py:150
|
#: election/views.py:150
|
||||||
msgid "view groups"
|
msgid "view groups"
|
||||||
msgstr "groupe de vue"
|
msgstr "groupe de vue"
|
||||||
@ -3753,19 +3757,19 @@ msgstr "L'utilisateur a déjà une photo de profil"
|
|||||||
msgid "counter"
|
msgid "counter"
|
||||||
msgstr "comptoir"
|
msgstr "comptoir"
|
||||||
|
|
||||||
#: counter/forms.py:45
|
#: counter/forms.py:48
|
||||||
msgid "This UID is invalid"
|
msgid "This UID is invalid"
|
||||||
msgstr "Cet UID est invalide"
|
msgstr "Cet UID est invalide"
|
||||||
|
|
||||||
#: counter/forms.py:83
|
#: counter/forms.py:89
|
||||||
msgid "User not found"
|
msgid "User not found"
|
||||||
msgstr "Utilisateur non trouvé"
|
msgstr "Utilisateur non trouvé"
|
||||||
|
|
||||||
#: counter/forms.py:131
|
#: counter/forms.py:145
|
||||||
msgid "Parent product"
|
msgid "Parent product"
|
||||||
msgstr "Produit parent"
|
msgstr "Produit parent"
|
||||||
|
|
||||||
#: counter/forms.py:137
|
#: counter/forms.py:151
|
||||||
msgid "Buying groups"
|
msgid "Buying groups"
|
||||||
msgstr "Groupes d'achat"
|
msgstr "Groupes d'achat"
|
||||||
|
|
||||||
@ -3789,7 +3793,7 @@ msgstr "client"
|
|||||||
msgid "customers"
|
msgid "customers"
|
||||||
msgstr "clients"
|
msgstr "clients"
|
||||||
|
|
||||||
#: counter/models.py:72 counter/views.py:311
|
#: counter/models.py:72 counter/views.py:312
|
||||||
msgid "Not enough money"
|
msgid "Not enough money"
|
||||||
msgstr "Solde insuffisant"
|
msgstr "Solde insuffisant"
|
||||||
|
|
||||||
@ -4055,7 +4059,7 @@ msgstr "Liste des relevés de caisse"
|
|||||||
msgid "Theoric sums"
|
msgid "Theoric sums"
|
||||||
msgstr "Sommes théoriques"
|
msgstr "Sommes théoriques"
|
||||||
|
|
||||||
#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:1003
|
#: counter/templates/counter/cash_summary_list.jinja:36 counter/views.py:1005
|
||||||
msgid "Emptied"
|
msgid "Emptied"
|
||||||
msgstr "Coffre vidé"
|
msgstr "Coffre vidé"
|
||||||
|
|
||||||
@ -4076,8 +4080,8 @@ msgid "This is not a valid student card UID"
|
|||||||
msgstr "Ce n'est pas un UID de carte étudiante valide"
|
msgstr "Ce n'est pas un UID de carte étudiante valide"
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:41
|
#: counter/templates/counter/counter_click.jinja:41
|
||||||
#: counter/templates/counter/counter_click.jinja:68
|
#: counter/templates/counter/counter_click.jinja:67
|
||||||
#: counter/templates/counter/counter_click.jinja:133
|
#: counter/templates/counter/counter_click.jinja:132
|
||||||
#: counter/templates/counter/invoices_call.jinja:16
|
#: counter/templates/counter/invoices_call.jinja:16
|
||||||
#: launderette/templates/launderette/launderette_admin.jinja:35
|
#: launderette/templates/launderette/launderette_admin.jinja:35
|
||||||
#: launderette/templates/launderette/launderette_click.jinja:13
|
#: launderette/templates/launderette/launderette_click.jinja:13
|
||||||
@ -4090,25 +4094,25 @@ msgstr "Valider"
|
|||||||
msgid "Registered cards"
|
msgid "Registered cards"
|
||||||
msgstr "Cartes enregistrées"
|
msgstr "Cartes enregistrées"
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:52
|
#: counter/templates/counter/counter_click.jinja:51
|
||||||
msgid "No card registered"
|
msgid "No card registered"
|
||||||
msgstr "Aucune carte enregistrée"
|
msgstr "Aucune carte enregistrée"
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:57
|
#: counter/templates/counter/counter_click.jinja:56
|
||||||
#: launderette/templates/launderette/launderette_admin.jinja:8
|
#: launderette/templates/launderette/launderette_admin.jinja:8
|
||||||
msgid "Selling"
|
msgid "Selling"
|
||||||
msgstr "Vente"
|
msgstr "Vente"
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:75
|
#: counter/templates/counter/counter_click.jinja:74
|
||||||
#: eboutic/templates/eboutic/eboutic_makecommand.jinja:20
|
#: eboutic/templates/eboutic/eboutic_makecommand.jinja:20
|
||||||
msgid "Basket: "
|
msgid "Basket: "
|
||||||
msgstr "Panier : "
|
msgstr "Panier : "
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:116
|
#: counter/templates/counter/counter_click.jinja:115
|
||||||
msgid "Finish"
|
msgid "Finish"
|
||||||
msgstr "Terminer"
|
msgstr "Terminer"
|
||||||
|
|
||||||
#: counter/templates/counter/counter_click.jinja:126
|
#: counter/templates/counter/counter_click.jinja:125
|
||||||
#: counter/templates/counter/refilling_list.jinja:9
|
#: counter/templates/counter/refilling_list.jinja:9
|
||||||
msgid "Refilling"
|
msgid "Refilling"
|
||||||
msgstr "Rechargement"
|
msgstr "Rechargement"
|
||||||
@ -4281,109 +4285,109 @@ msgstr "Temps"
|
|||||||
msgid "Top 100 barman %(counter_name)s (all semesters)"
|
msgid "Top 100 barman %(counter_name)s (all semesters)"
|
||||||
msgstr "Top 100 barman %(counter_name)s (tous les semestres)"
|
msgstr "Top 100 barman %(counter_name)s (tous les semestres)"
|
||||||
|
|
||||||
#: counter/views.py:172
|
#: counter/views.py:173
|
||||||
msgid "Cash summary"
|
msgid "Cash summary"
|
||||||
msgstr "Relevé de caisse"
|
msgstr "Relevé de caisse"
|
||||||
|
|
||||||
#: counter/views.py:188
|
#: counter/views.py:189
|
||||||
msgid "Last operations"
|
msgid "Last operations"
|
||||||
msgstr "Dernières opérations"
|
msgstr "Dernières opérations"
|
||||||
|
|
||||||
#: counter/views.py:205
|
#: counter/views.py:206
|
||||||
msgid "Take items from stock"
|
msgid "Take items from stock"
|
||||||
msgstr "Prendre des éléments du stock"
|
msgstr "Prendre des éléments du stock"
|
||||||
|
|
||||||
#: counter/views.py:254
|
#: counter/views.py:255
|
||||||
msgid "Bad credentials"
|
msgid "Bad credentials"
|
||||||
msgstr "Mauvais identifiants"
|
msgstr "Mauvais identifiants"
|
||||||
|
|
||||||
#: counter/views.py:256
|
#: counter/views.py:257
|
||||||
msgid "User is not barman"
|
msgid "User is not barman"
|
||||||
msgstr "L'utilisateur n'est pas barman."
|
msgstr "L'utilisateur n'est pas barman."
|
||||||
|
|
||||||
#: counter/views.py:261
|
#: counter/views.py:262
|
||||||
msgid "Bad location, someone is already logged in somewhere else"
|
msgid "Bad location, someone is already logged in somewhere else"
|
||||||
msgstr "Mauvais comptoir, quelqu'un est déjà connecté ailleurs"
|
msgstr "Mauvais comptoir, quelqu'un est déjà connecté ailleurs"
|
||||||
|
|
||||||
#: counter/views.py:302
|
#: counter/views.py:303
|
||||||
msgid "Too young for that product"
|
msgid "Too young for that product"
|
||||||
msgstr "Trop jeune pour ce produit"
|
msgstr "Trop jeune pour ce produit"
|
||||||
|
|
||||||
#: counter/views.py:305
|
#: counter/views.py:306
|
||||||
msgid "Not allowed for that product"
|
msgid "Not allowed for that product"
|
||||||
msgstr "Non autorisé pour ce produit"
|
msgstr "Non autorisé pour ce produit"
|
||||||
|
|
||||||
#: counter/views.py:308
|
#: counter/views.py:309
|
||||||
msgid "No date of birth provided"
|
msgid "No date of birth provided"
|
||||||
msgstr "Pas de date de naissance renseignée"
|
msgstr "Pas de date de naissance renseignée"
|
||||||
|
|
||||||
#: counter/views.py:597
|
#: counter/views.py:598
|
||||||
msgid "You have not enough money to buy all the basket"
|
msgid "You have not enough money to buy all the basket"
|
||||||
msgstr "Vous n'avez pas assez d'argent pour acheter le panier"
|
msgstr "Vous n'avez pas assez d'argent pour acheter le panier"
|
||||||
|
|
||||||
#: counter/views.py:723
|
#: counter/views.py:725
|
||||||
msgid "Counter administration"
|
msgid "Counter administration"
|
||||||
msgstr "Administration des comptoirs"
|
msgstr "Administration des comptoirs"
|
||||||
|
|
||||||
#: counter/views.py:725
|
#: counter/views.py:727
|
||||||
msgid "Stocks"
|
msgid "Stocks"
|
||||||
msgstr "Stocks"
|
msgstr "Stocks"
|
||||||
|
|
||||||
#: counter/views.py:744
|
#: counter/views.py:746
|
||||||
msgid "Product types"
|
msgid "Product types"
|
||||||
msgstr "Types de produit"
|
msgstr "Types de produit"
|
||||||
|
|
||||||
#: counter/views.py:960
|
#: counter/views.py:962
|
||||||
msgid "10 cents"
|
msgid "10 cents"
|
||||||
msgstr "10 centimes"
|
msgstr "10 centimes"
|
||||||
|
|
||||||
#: counter/views.py:961
|
#: counter/views.py:963
|
||||||
msgid "20 cents"
|
msgid "20 cents"
|
||||||
msgstr "20 centimes"
|
msgstr "20 centimes"
|
||||||
|
|
||||||
#: counter/views.py:962
|
#: counter/views.py:964
|
||||||
msgid "50 cents"
|
msgid "50 cents"
|
||||||
msgstr "50 centimes"
|
msgstr "50 centimes"
|
||||||
|
|
||||||
#: counter/views.py:963
|
#: counter/views.py:965
|
||||||
msgid "1 euro"
|
msgid "1 euro"
|
||||||
msgstr "1 €"
|
msgstr "1 €"
|
||||||
|
|
||||||
#: counter/views.py:964
|
#: counter/views.py:966
|
||||||
msgid "2 euros"
|
msgid "2 euros"
|
||||||
msgstr "2 €"
|
msgstr "2 €"
|
||||||
|
|
||||||
#: counter/views.py:965
|
#: counter/views.py:967
|
||||||
msgid "5 euros"
|
msgid "5 euros"
|
||||||
msgstr "5 €"
|
msgstr "5 €"
|
||||||
|
|
||||||
#: counter/views.py:966
|
#: counter/views.py:968
|
||||||
msgid "10 euros"
|
msgid "10 euros"
|
||||||
msgstr "10 €"
|
msgstr "10 €"
|
||||||
|
|
||||||
#: counter/views.py:967
|
#: counter/views.py:969
|
||||||
msgid "20 euros"
|
msgid "20 euros"
|
||||||
msgstr "20 €"
|
msgstr "20 €"
|
||||||
|
|
||||||
#: counter/views.py:968
|
#: counter/views.py:970
|
||||||
msgid "50 euros"
|
msgid "50 euros"
|
||||||
msgstr "50 €"
|
msgstr "50 €"
|
||||||
|
|
||||||
#: counter/views.py:970
|
#: counter/views.py:972
|
||||||
msgid "100 euros"
|
msgid "100 euros"
|
||||||
msgstr "100 €"
|
msgstr "100 €"
|
||||||
|
|
||||||
#: counter/views.py:973 counter/views.py:979 counter/views.py:985
|
#: counter/views.py:975 counter/views.py:981 counter/views.py:987
|
||||||
#: counter/views.py:991 counter/views.py:997
|
#: counter/views.py:993 counter/views.py:999
|
||||||
msgid "Check amount"
|
msgid "Check amount"
|
||||||
msgstr "Montant du chèque"
|
msgstr "Montant du chèque"
|
||||||
|
|
||||||
#: counter/views.py:976 counter/views.py:982 counter/views.py:988
|
#: counter/views.py:978 counter/views.py:984 counter/views.py:990
|
||||||
#: counter/views.py:994 counter/views.py:1000
|
#: counter/views.py:996 counter/views.py:1002
|
||||||
msgid "Check quantity"
|
msgid "Check quantity"
|
||||||
msgstr "Nombre de chèque"
|
msgstr "Nombre de chèque"
|
||||||
|
|
||||||
#: counter/views.py:1530
|
#: counter/views.py:1532
|
||||||
msgid "people(s)"
|
msgid "people(s)"
|
||||||
msgstr "personne(s)"
|
msgstr "personne(s)"
|
||||||
|
|
||||||
@ -4691,11 +4695,11 @@ msgstr "Utilisateur se présentant"
|
|||||||
msgid "This role already exists for this election"
|
msgid "This role already exists for this election"
|
||||||
msgstr "Ce rôle existe déjà pour cette élection"
|
msgstr "Ce rôle existe déjà pour cette élection"
|
||||||
|
|
||||||
#: election/views.py:166
|
#: election/views.py:170
|
||||||
msgid "Start candidature"
|
msgid "Start candidature"
|
||||||
msgstr "Début des candidatures"
|
msgstr "Début des candidatures"
|
||||||
|
|
||||||
#: election/views.py:168
|
#: election/views.py:173
|
||||||
msgid "End candidature"
|
msgid "End candidature"
|
||||||
msgstr "Fin des candidatures"
|
msgstr "Fin des candidatures"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user