From dbcf072683f7046d5e0363876920bbdfdbc9625f Mon Sep 17 00:00:00 2001 From: Anders Bruun Severinsen <202204885@post.au.dk> Date: Thu, 11 Jul 2024 18:50:23 +0200 Subject: [PATCH] Added more translations --- bartab/forms.py | 5 +- bartab/models.py | 17 +- bartab/sumfield.py | 3 +- bartab/templates/bartab/consumption.html | 9 +- bartenders/templates/barplan.html | 8 +- bartenders/views.py | 25 +-- events/admin.py | 11 +- events/forms.py | 16 +- events/views.py | 15 +- locale/da/LC_MESSAGES/django.mo | Bin 544 -> 1529 bytes locale/da/LC_MESSAGES/django.po | 206 +++++++++++++++---- locale/en/LC_MESSAGES/django.mo | Bin 18547 -> 20530 bytes locale/en/LC_MESSAGES/django.po | 242 +++++++++++++++++------ web/views.py | 5 +- 14 files changed, 428 insertions(+), 134 deletions(-) diff --git a/bartab/forms.py b/bartab/forms.py index d3c35de..6288577 100644 --- a/bartab/forms.py +++ b/bartab/forms.py @@ -1,12 +1,13 @@ from django import forms +from django.utils.translation import ugettext_lazy as _ from .models import BarTabSnapshot class ConsumptionForm(forms.Form): start_snapshot = forms.ModelChoiceField( - label="First to include", queryset=BarTabSnapshot.objects + label=_("First to include"), queryset=BarTabSnapshot.objects ) end_snapshot = forms.ModelChoiceField( - label="Last to include", queryset=BarTabSnapshot.objects + label=_("Last to include"), queryset=BarTabSnapshot.objects ) diff --git a/bartab/models.py b/bartab/models.py index ea26c69..447808a 100644 --- a/bartab/models.py +++ b/bartab/models.py @@ -6,6 +6,7 @@ from django.db.models import F, Sum, Value from django.db.models.functions import Coalesce from django.utils import timezone +from django.utils.translation import ugettext_lazy as _ from bartenders.models import BartenderShift @@ -83,10 +84,10 @@ class Meta: def clean(self): error = None if self.bartender_shift and self.custom_datetime: - error = "Can't have both bartender shift and custom datetime" + error = _("Can't have both bartender shift and custom datetime") if not self.bartender_shift and not self.custom_datetime: - error = "Must have either bartender shift or custom datetime" + error = _("Must have either bartender shift or custom datetime") if error: raise ValidationError( @@ -131,16 +132,16 @@ def __str__(self): class BarTabEntry(models.Model): - added_cash = models.BooleanField(blank=True, null=True, verbose_name="Kontant?") + added_cash = models.BooleanField(blank=True, null=True, verbose_name=_("Kontant?")) added = models.DecimalField(max_digits=9 + 2, decimal_places=2) used = models.DecimalField(max_digits=9 + 2, decimal_places=2) - raw_added = SumField(blank=True, verbose_name="Indsat") - raw_used = SumField(blank=True, verbose_name="Køb") + raw_added = SumField(blank=True, verbose_name=_("Indsat")) + raw_used = SumField(blank=True, verbose_name=_("Køb")) user = models.ForeignKey( BarTabUser, on_delete=models.CASCADE, - related_name="entries", - verbose_name="Bruger", + related_name=_("entries"), + verbose_name=_("Bruger"), ) snapshot = models.ForeignKey( BarTabSnapshot, on_delete=models.CASCADE, related_name="entries" @@ -157,7 +158,7 @@ def clean(self): if self.raw_added: self.added = self.raw_added.value if self.added_cash == None and self.added != 0: - raise ValidationError("Vælg kontant eller ej.") + raise ValidationError(_("Vælg kontant eller ej.")) if self.raw_used: self.used = self.raw_used.value diff --git a/bartab/sumfield.py b/bartab/sumfield.py index c5d256c..9fee0f9 100644 --- a/bartab/sumfield.py +++ b/bartab/sumfield.py @@ -4,6 +4,7 @@ from django import forms from django.core.exceptions import ValidationError from django.db import models +from django.utils.translation import ugettext_lazy as _ SumValue = namedtuple("SumValue", ["string", "value"]) @@ -27,7 +28,7 @@ def clean(self, value): try: return parse_sum(value) except (ValueError, InvalidOperation): - raise ValidationError("Invalid sum") + raise ValidationError(_("Invalid sum")) def prepare_value(self, value): if isinstance(value, str) or value == None: diff --git a/bartab/templates/bartab/consumption.html b/bartab/templates/bartab/consumption.html index cfbdf61..5acd6ba 100644 --- a/bartab/templates/bartab/consumption.html +++ b/bartab/templates/bartab/consumption.html @@ -1,18 +1,19 @@ {% extends "admin/base_site.html" %} {% block content %} +{% load i18n %}
{% csrf_token %} {{ form.as_p }} - +
{% if result %} -

Result

+

{% translate "Result" %}

- - + + diff --git a/bartenders/templates/barplan.html b/bartenders/templates/barplan.html index b1fa801..4949cff 100644 --- a/bartenders/templates/barplan.html +++ b/bartenders/templates/barplan.html @@ -31,7 +31,8 @@

{% translate "Barplan" %}

{% if user.is_staff %} @@ -70,11 +71,12 @@

{% translate "Pantvagter" %}

{% if user.is_staff %} - + {% endif %} {% endfor %} diff --git a/bartenders/views.py b/bartenders/views.py index c00e9f1..9d7462c 100644 --- a/bartenders/views.py +++ b/bartenders/views.py @@ -9,6 +9,7 @@ from django.db import IntegrityError from django.shortcuts import get_object_or_404, redirect, reverse from django.utils import timezone +from django.utils.translation import ugettext_lazy as _ from django.views.generic import ( CreateView, FormView, @@ -58,7 +59,7 @@ def form_valid(self, form): # Send email to best form.send_email(self.object.pk) - messages.success(self.request, "Din ansøgning er blevet indsendt.") + messages.success(self.request, _("Din ansøgning er blevet indsendt.")) return response @@ -104,7 +105,7 @@ class UserBarplan(ICalFeed): product_id = "-//fredagscafeen.dk//UserBarplan//EN" timezone = "UTC" file_name = "barvagter.ics" - title = "Barvagter" + title = _("Barvagter") def get_object(self, request, **kwargs): # kwargs['username'] is None if we need to show all shifts @@ -127,8 +128,10 @@ def item_end_datetime(self, shift): return shift.end_datetime def item_description(self, shift): - return f"""Responsible: {shift.responsible.name} -Other bartenders: {", ".join(b.name for b in shift.other_bartenders.all())}""" + responsible_text = _("Responsible") + other_text = _("Other bartenders") + return f"""{responsible_text}: {shift.responsible.name} +{other_text}: {", ".join(b.name for b in shift.other_bartenders.all())}""" def item_link(self, shift): return f"{settings.SELF_URL}barplan/" @@ -141,7 +144,7 @@ class UserDepositShifts(ICalFeed): product_id = "-//fredagscafeen.dk//UserDepositShifts//EN" timezone = "UTC" file_name = "pantvagter.ics" - title = "Pantvagter" + title = _("Pantvagter") def get_object(self, request, **kwargs): # kwargs['username'] is None if we need to show all shifts @@ -164,9 +167,8 @@ def item_end_datetime(self, shift): return shift.end_date def item_description(self, shift): - return ( - f"""Responsibles: {", ".join(b.name for b in shift.responsibles.all())}""" - ) + responsible_text = _("Responsible") + return f"""{responsible_text}: {", ".join(b.name for b in shift.responsibles.all())}""" def item_link(self, shift): return f"{settings.SELF_URL}barplan/" @@ -274,15 +276,16 @@ def get_context_data(self, **kwargs): return context def form_valid(self, form): - messages.success(self.request, "Profil opdateret") + messages.success(self.request, _("Profil opdateret")) redirect_url = super().form_valid(form) if "deactivate" in self.request.POST: self.object.isActiveBartender = False self.object.save() active_count = Bartender.objects.filter(isActiveBartender=True).count() + inactive_text = "Bartender har meldt sig inaktiv" send_template_email( - subject=f"Bartender har meldt sig inaktiv: {self.object.name}", + subject=f"{inactive_text}: {self.object.name}", body_template=f"""Dette er en automatisk email. {self.object.name} har meldt sig inaktiv. @@ -342,7 +345,7 @@ def form_valid(self, form): data = form.cleaned_data urls = data["urls"].split() if len(urls) < votees.count(): - form.add_error("urls", f"Atleast {votees.count()} urls required") + form.add_error("urls", f"At least {votees.count()} urls required") return self.form_invalid(form) try: poll = Poll.objects.create(name=data["name"]) diff --git a/events/admin.py b/events/admin.py index 0fe38e3..db86237 100644 --- a/events/admin.py +++ b/events/admin.py @@ -1,5 +1,6 @@ from django import forms from django.contrib import admin +from django.utils.translation import ugettext_lazy as _ from bartenders.models import Bartender @@ -12,7 +13,7 @@ class Meta: fields = ["name"] chosen_options = forms.CharField( - label="Chosen options", disabled=True, widget=forms.Textarea + label=_("Chosen options"), disabled=True, widget=forms.Textarea ) def get_initial_for_field(self, field, fieldname): @@ -68,8 +69,8 @@ class Meta: fields = "__all__" default_may_attends = forms.CharField( - label="Default allowed attendees", - help_text="Can be overwritten using the whitelist and blacklist above.", + label=_("Default allowed attendees"), + help_text=_("Can be overwritten using the whitelist and blacklist above."), disabled=True, widget=forms.Textarea, ) @@ -82,8 +83,8 @@ def get_initial_for_field(self, field, fieldname): if self.instance.may_attend_default(b): s += f"- {b}\n" allowed += 1 - - return f"{allowed} bartenders:\n" + s.strip() + bartenders = _("bartenders") + return f"{allowed} {bartenders}:\n" + s.strip() return super().get_initial_for_field(field, fieldname) diff --git a/events/forms.py b/events/forms.py index 8d13dd7..8208ba6 100644 --- a/events/forms.py +++ b/events/forms.py @@ -1,4 +1,5 @@ from django import forms +from django.utils.translation import ugettext_lazy as _ from .models import EventChoiceOption, EventResponse @@ -17,8 +18,8 @@ def create_option(self, *args, **kwargs): class EventResponseForm(forms.Form): ATTENDING_CHOICES = ( (None, "---------"), - (True, "Deltager"), - (False, "Deltager ikke"), + (True, _("Deltager")), + (False, _("Deltager ikke")), ) def _to_bool(self, s): @@ -55,7 +56,7 @@ def __init__(self, *args, event, bartender, **kwargs): attending_choices = self.ATTENDING_CHOICES[1:] self.fields["attending"] = forms.TypedChoiceField( - label="Deltager", choices=attending_choices, coerce=self._to_bool + label=_("Deltager"), choices=attending_choices, coerce=self._to_bool ) if event_response: self.fields["attending"].initial = event_response.attending @@ -86,14 +87,19 @@ def clean(self): if not option: self.add_error( - field, f"Du skal udfylde {choice.name}, når du deltager" + field, + _("Du skal udfylde %(choice_name)s, når du deltager") + % {"choice_name": choice.name}, ) continue if not option.can_bartender_choose(self.bartender): self.add_error( field, - f"Der er for mange der har valgt {option.option}. Vælg noget andet.", + _( + "Der er for mange der har valgt %(option_option)s. Vælg noget andet." + ) + & {"option_option": option.option}, ) def save(self): diff --git a/events/views.py b/events/views.py index d168919..4771303 100644 --- a/events/views.py +++ b/events/views.py @@ -2,6 +2,7 @@ from django.contrib import messages from django.http import HttpResponseBadRequest, HttpResponseForbidden from django.shortcuts import redirect +from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView from django_ical.views import ICalFeed @@ -53,11 +54,11 @@ def post(self, request, *args, **kwargs): event_id = request.POST.get("event_id") event = Event.objects.get(id=event_id) except Event.DoesNotExist: - return HttpResponseBadRequest("Event with id does not exist") + return HttpResponseBadRequest(_("Event with id does not exist")) bartender = self.get_bartender() if not bartender or not event.may_attend(bartender): - return HttpResponseForbidden("Not logged in as an active bartender") + return HttpResponseForbidden(_("Not logged in as an active bartender")) form = EventResponseForm(request.POST, event=event, bartender=bartender) if not form.is_valid(): @@ -67,7 +68,10 @@ def post(self, request, *args, **kwargs): form.save() - messages.success(request, f"Opdateret tilmelding til {event.name}") + messages.success( + request, + _("Opdateret tilmelding til %(event_name)s") % {"event_name": event.name}, + ) return redirect("events") @@ -75,7 +79,7 @@ class EventFeed(ICalFeed): product_id = "-//fredagscafeen.dk//Events//EN" timezone = "UTC" file_name = "events.ics" - title = "Bartender Events" + title = _("Bartender Events") def items(self): return Event.objects.all() @@ -93,7 +97,8 @@ def item_end_datetime(self, event): return event.end_datetime def item_description(self, event): - return f"""Tilmeldingsfrist: {event.response_deadline} + tilmeldingsfrist = _("Tilmeldingsfrist") + return f"""{tilmeldingsfrist}: {event.response_deadline} {event.description}""" diff --git a/locale/da/LC_MESSAGES/django.mo b/locale/da/LC_MESSAGES/django.mo index c20b14dcf69e4bae652ff1934d8311fc8848d136..cdc0d4faeb68cf36707bee80175e21109ec193eb 100644 GIT binary patch literal 1529 zcmZvc&ugPa7{{l&t`K4Ufd@r}NAM@*jY(a1yJ;&M({zd3rln1bf*vNBC+|CbCo^GY zlCC$wvqx_VUKEcW6}%Pk;z4hMAc6-G!GFMu-)ZW;yUT_opZ5vRJo9~Ko^O78;=(5a zuP5<&7N74@fY*CV6(7Xo`-s;-3BC?~23`Vx1}}oYgHMBhf)~K02ZVSSya=Ycm%zus zW$;mO9ZYq$LA=F>_<8~S2uyijfscUSf~o%ZVAAm;SOb3oKgM3af@wdEuQq7GRq$)@ zaqutjA@E=D8E^?f()HXqUj&~*oPkN#7MS`v0!)T)-Y~8nv@QY)Y#`AvSp|X9g>baVM-u zCLxMBh_2F6bZw4(3(=jkjdY^1msX@42eK{_--1N3r9Fg3N7|0eOtILOcgH)BvQW#Y z0G0RZb)N2(+jpXm9gNF!$kLW%z*&$SMV-3-zhSX^cfla`IZV-@9vT)0v*83?yo+{j zuLxq#yJH^3tf#Ug_5sJyqP=$KX8T5$j=K8?z1@CopQp~pY$xPeWpB;$kPTdmYJ0nb ztm9dxGt4$|v@Kd`tX$3-SF>i5nyanLSC$(qjRq34eV*%7{Qh}Ymm7^Y8ntv(*}zL1 zjEv5=h-h67!}X~Pu`XwIRlbQFo6ls<*?{GwMceKEjl-mMeS7=5(RJtZDhC>OdOO{! zv1Ywd>o|*B#XcWQAvp4__}bJ+ZP#d2NFO+E91ga!)haLP8MDv2cH|UhvPG*y9cz1L z=B3HDoS%di+38srHdfYX@woAdrRO)O`RZEjo!d>Z$_~?9w@4kM5tn()VT_U*^=tKO zwd4gBH*vMe38D13-avEQd2xLDrJ0f(S8ho2n^$&7AqI2oeEqC~E=xXl#pxI7jwuOc zas`$~ZKg6{|H>Cf(&Uk8GBY|a7#>R22&FiPu%7fPtuay|MX`yv2G5u=rSXvL!3Mbt zdrZ=xDjI7TC{Pk3dbUiC@H9UC1}3TEpcTS{QkrvPq#LTndMCtNvr|^%U#M`oR2aEpzq)fHS delta 315 zcmYL?u}cFn7{x!^vqEpuO;pG(`3DX`QxdU~yMwD8>XsqsX}E*ta1xxIi@T#8+=`Rn z;9ue5|KaBQgyJK=yoB#PzMu3tdHCK*o(LL%ePBTf?g8rs^uZEv<`ry#73hI?!1E6< z+93LbCt!f#COn06ejCoYT{sRM;6i+a=fD1n_;Qg$YjKfO2&7$8$7?dpRbVe#n)$_7 z@3@qezpG>2Hd4FJXJTelCG%2hCC8>&i?fi^u-k9&hx#GT!n=AK-<*p>s#SrfN1t diff --git a/locale/da/LC_MESSAGES/django.po b/locale/da/LC_MESSAGES/django.po index d925f74..35fc735 100644 --- a/locale/da/LC_MESSAGES/django.po +++ b/locale/da/LC_MESSAGES/django.po @@ -8,15 +8,60 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-06-29 19:40+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2024-07-11 18:46+0200\n" +"PO-Revision-Date: 2024-07-11 18:47+0050\n" +"Last-Translator: \n" "Language-Team: LANGUAGE \n" "Language: \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-Translated-Using: django-rosetta 0.9.9\n" + +#: bartab/forms.py:9 +msgid "First to include" +msgstr "Inkluder først" + +#: bartab/forms.py:12 +msgid "Last to include" +msgstr "Inkluder sidst" + +#: bartab/models.py:87 +msgid "Can't have both bartender shift and custom datetime" +msgstr "Kan ikke have både bartenderskift og tilpasset datetime" + +#: bartab/models.py:90 +msgid "Must have either bartender shift or custom datetime" +msgstr "Skal have enten bartendervagt eller tilpasset datetime" + +#: bartab/models.py:135 +msgid "Kontant?" +msgstr "" + +#: bartab/models.py:138 bartab/templates/bartab.html:20 +msgid "Indsat" +msgstr "" + +#: bartab/models.py:139 bartab/templates/bartab.html:21 +msgid "Køb" +msgstr "" + +#: bartab/models.py:143 +msgid "entries" +msgstr "" + +#: bartab/models.py:144 +msgid "Bruger" +msgstr "" + +#: bartab/models.py:161 +msgid "Vælg kontant eller ej." +msgstr "" + +#: bartab/sumfield.py:31 +msgid "Invalid sum" +msgstr "" #: bartab/templates/bartab.html:8 msgid "Krydslisteaktivitet" @@ -38,16 +83,24 @@ msgstr "" msgid "Dato" msgstr "" -#: bartab/templates/bartab.html:20 -msgid "Indsat" +#: bartab/templates/bartab.html:37 +msgid "er ikke på krydslisten." msgstr "" -#: bartab/templates/bartab.html:21 -msgid "Køb" +#: bartab/templates/bartab/consumption.html:7 +msgid "Submit" +msgstr "Indsend" + +#: bartab/templates/bartab/consumption.html:10 +msgid "Result" msgstr "" -#: bartab/templates/bartab.html:37 -msgid "er ikke på krydslisten." +#: bartab/templates/bartab/consumption.html:15 events/templates/events.html:68 +msgid "Navn" +msgstr "" + +#: bartab/templates/bartab/consumption.html:16 +msgid "Forbrug" msgstr "" #: bartenders/models.py:51 @@ -94,12 +147,12 @@ msgstr "" msgid "Barplan" msgstr "" -#: bartenders/templates/barplan.html:11 bartenders/templates/barplan.html:52 +#: bartenders/templates/barplan.html:11 bartenders/templates/barplan.html:53 #: events/templates/events.html:12 msgid "Vis nuværende" msgstr "" -#: bartenders/templates/barplan.html:13 bartenders/templates/barplan.html:54 +#: bartenders/templates/barplan.html:13 bartenders/templates/barplan.html:55 #: events/templates/events.html:14 msgid "Vis også tidligere" msgstr "" @@ -113,18 +166,30 @@ msgstr "" msgid "Bartendere" msgstr "" -#: bartenders/templates/barplan.html:49 +#: bartenders/templates/barplan.html:34 +msgid "Bartender's first shift" +msgstr "" + +#: bartenders/templates/barplan.html:50 bartenders/views.py:147 msgid "Pantvagter" msgstr "" -#: bartenders/templates/barplan.html:60 +#: bartenders/templates/barplan.html:61 msgid "Uge" msgstr "" -#: bartenders/templates/barplan.html:61 udlejning/models.py:107 +#: bartenders/templates/barplan.html:62 udlejning/models.py:107 msgid "Ansvarlige" msgstr "" +#: bartenders/templates/barplan.html:74 +msgid "Bartender's first deposit shift" +msgstr "" + +#: bartenders/templates/barplan.html:79 +msgid "Edit" +msgstr "Rediger" + #: bartenders/templates/bartender_info.html:38 msgid "Bartender status" msgstr "" @@ -147,7 +212,8 @@ msgstr "" #: bartenders/templates/bartender_info.html:48 msgid "" -"Husk at du som inaktiv bartender ikke kan komme til bartenderarrangementerne." +"Husk at du som inaktiv bartender ikke kan komme til " +"bartenderarrangementerne." msgstr "" #: bartenders/templates/bartender_info.html:51 @@ -249,7 +315,7 @@ msgid "" "indebærer." msgstr "" -#: bartenders/templates/index.html:23 +#: bartenders/templates/index.html:23 udlejning/templates/udlejning.html:120 msgid "Indsend" msgstr "" @@ -257,6 +323,60 @@ msgstr "" msgid "Bartendertilmeldingen er lukket." msgstr "" +#: bartenders/views.py:62 +msgid "Din ansøgning er blevet indsendt." +msgstr "" + +#: bartenders/views.py:108 +msgid "Barvagter" +msgstr "" + +#: bartenders/views.py:131 bartenders/views.py:170 +msgid "Responsible" +msgstr "Ansvarlige" + +#: bartenders/views.py:132 +msgid "Other bartenders" +msgstr "Andre bartendere" + +#: bartenders/views.py:281 +msgid "Profil opdateret" +msgstr "" + +#: events/admin.py:16 +msgid "Chosen options" +msgstr "Valgte muligheder" + +#: events/admin.py:72 +msgid "Default allowed attendees" +msgstr "Standard tilladte deltagere" + +#: events/admin.py:73 +msgid "Can be overwritten using the whitelist and blacklist above." +msgstr "Kan overskrives ved hjælp af whitelisten og blacklisten ovenfor." + +#: events/admin.py:86 +msgid "bartenders" +msgstr "bartendere" + +#: events/forms.py:21 events/forms.py:59 +msgid "Deltager" +msgstr "" + +#: events/forms.py:22 +msgid "Deltager ikke" +msgstr "" + +#: events/forms.py:91 +#, python-format +msgid "Du skal udfylde %(choice_name)s, når du deltager" +msgstr "" + +#: events/forms.py:98 +#, python-format +msgid "Der er for mange der har valgt %(option_option)s. Vælg noget andet." +msgstr "" + #: events/templates/events.html:8 msgid "Bartender events" msgstr "" @@ -302,7 +422,7 @@ msgid "" "end en måned siden." msgstr "" -#: events/templates/events.html:37 +#: events/templates/events.html:37 events/views.py:97 msgid "Tilmeldingsfrist" msgstr "" @@ -326,8 +446,21 @@ msgstr "" msgid "Tilmeldte" msgstr "" -#: events/templates/events.html:68 -msgid "Navn" +#: events/views.py:57 +msgid "Event with id does not exist" +msgstr "Event med id findes ikke" + +#: events/views.py:61 +msgid "Not logged in as an active bartender" +msgstr "Ikke logget ind som en aktiv bartender" + +#: events/views.py:71 +#, python-format +msgid "Opdateret tilmelding til %(event_name)s" +msgstr "" + +#: events/views.py:79 +msgid "Bartender Events" msgstr "" #: fredagscafeen/admin_filters.py:30 @@ -369,8 +502,8 @@ msgstr "" #: guides/templates/guides.html:9 msgctxt "Fredagscaféen" msgid "" -"Her ligger alle de lækre guides, som er rare at have, når man involverer sig " -"i driften af" +"Her ligger alle de lækre guides, som er rare at have, når man involverer sig" +" i driften af" msgstr "" #: guides/templates/guides.html:12 @@ -455,8 +588,8 @@ msgstr "" #: udlejning/models.py:64 msgid "" -"Hvilke slags øl eller andre drikkevarer ønskes der og hvor mange fustager af " -"hver type?" +"Hvilke slags øl eller andre drikkevarer ønskes der og hvor mange fustager af" +" hver type?" msgstr "" #: udlejning/models.py:67 @@ -579,7 +712,8 @@ msgstr "" #: udlejning/templates/udlejning.html:41 msgid "" -"Udelukkende arrangementer der finder sted på universitetet. Dette inkluderer:" +"Udelukkende arrangementer der finder sted på universitetet. Dette " +"inkluderer:" msgstr "" #: udlejning/templates/udlejning.html:43 @@ -596,8 +730,8 @@ msgstr "" #: udlejning/templates/udlejning.html:49 msgid "" -"Arrangementer der finder sted på universitetet eller andetsteds, kan være af " -"privat natur. Dette inkluderer:" +"Arrangementer der finder sted på universitetet eller andetsteds, kan være af" +" privat natur. Dette inkluderer:" msgstr "" #: udlejning/templates/udlejning.html:51 @@ -640,10 +774,10 @@ msgstr "" #: udlejning/templates/udlejning.html:71 msgid "" -"Når du låner et anlæg, skal der på udlåningsdagen samt tilbagelevering, være " -"et bestyrelsesmedlem der står for det praktiske. Vi er alle frivillige og " -"har studier og jobs ved siden af vorest bestyrelsesarbejde, og derfor kan vi " -"ikke være sikre på at kunne stille et besyterelsesmedlem til rådighed." +"Når du låner et anlæg, skal der på udlåningsdagen samt tilbagelevering, være" +" et bestyrelsesmedlem der står for det praktiske. Vi er alle frivillige og " +"har studier og jobs ved siden af vorest bestyrelsesarbejde, og derfor kan vi" +" ikke være sikre på at kunne stille et besyterelsesmedlem til rådighed." msgstr "" #: udlejning/templates/udlejning.html:73 @@ -660,8 +794,8 @@ msgid "" "mulighed for at være der i en af de mulige tidsrum. Hvis ikke du skriver " "mindst 7 dage i forvejen, kan vi ikke garantere at vi kan melde ud hvorvidt " "udlejning er muligt i god tid, dog er det stadig muligt at kunne låne " -"anlægget selv hvis man melder ud i dårlig tid, vi kan blot ikke garantere at " -"der kommer et svar i god tid." +"anlægget selv hvis man melder ud i dårlig tid, vi kan blot ikke garantere at" +" der kommer et svar i god tid." msgstr "" #: udlejning/templates/udlejning.html:78 @@ -678,7 +812,8 @@ msgstr "" #: udlejning/templates/udlejning.html:90 msgid "" -", som kommer i 25 liters fustager. Prisen er 750 kr. pr. fustage (incl. moms)" +", som kommer i 25 liters fustager. Prisen er 750 kr. pr. fustage (incl. " +"moms)" msgstr "" #: udlejning/templates/udlejning.html:93 @@ -923,3 +1058,8 @@ msgstr "" #: web/templates/base.html:109 msgid "er en fredagsbar for datalogi og IT på Aarhus Universitet." msgstr "" + +#: web/views.py:47 +msgid "" +"Login mail sendt: Tryk på linket i din modtagede mail for at logge ind." +msgstr "" diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo index 0a1442ff3697b952dc4ebcf9517b4cdca92d72dd..3eac80980b9309828c3878a2b5531998b57f4272 100644 GIT binary patch delta 5513 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\n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -19,6 +19,50 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Translated-Using: django-rosetta 0.9.9\n" +#: bartab/forms.py:9 +msgid "First to include" +msgstr "First to include" + +#: bartab/forms.py:12 +msgid "Last to include" +msgstr "Last to include" + +#: bartab/models.py:87 +msgid "Can't have both bartender shift and custom datetime" +msgstr "Can't have both bartender shift and custom datetime" + +#: bartab/models.py:90 +msgid "Must have either bartender shift or custom datetime" +msgstr "Must have either bartender shift or custom datetime" + +#: bartab/models.py:135 +msgid "Kontant?" +msgstr "Cash?" + +#: bartab/models.py:138 bartab/templates/bartab.html:20 +msgid "Indsat" +msgstr "Deposited" + +#: bartab/models.py:139 bartab/templates/bartab.html:21 +msgid "Køb" +msgstr "Purchases" + +#: bartab/models.py:143 +msgid "entries" +msgstr "entries" + +#: bartab/models.py:144 +msgid "Bruger" +msgstr "User" + +#: bartab/models.py:161 +msgid "Vælg kontant eller ej." +msgstr "Choose cash or not." + +#: bartab/sumfield.py:31 +msgid "Invalid sum" +msgstr "Invalid sum" + #: bartab/templates/bartab.html:8 msgid "Krydslisteaktivitet" msgstr "Tab activity" @@ -39,18 +83,26 @@ msgstr "Total consumption" msgid "Dato" msgstr "Date" -#: bartab/templates/bartab.html:20 -msgid "Indsat" -msgstr "Deposited" - -#: bartab/templates/bartab.html:21 -msgid "Køb" -msgstr "Purchases" - #: bartab/templates/bartab.html:37 msgid "er ikke på krydslisten." msgstr "is not on the tab." +#: bartab/templates/bartab/consumption.html:7 +msgid "Submit" +msgstr "" + +#: bartab/templates/bartab/consumption.html:10 +msgid "Result" +msgstr "Result" + +#: bartab/templates/bartab/consumption.html:15 events/templates/events.html:68 +msgid "Navn" +msgstr "Name" + +#: bartab/templates/bartab/consumption.html:16 +msgid "Forbrug" +msgstr "Consumption" + #: bartenders/models.py:51 msgid "Fulde navn" msgstr "Full name" @@ -95,12 +147,12 @@ msgstr "Any additional information for the board can be written here" msgid "Barplan" msgstr "Bar Plan" -#: bartenders/templates/barplan.html:11 bartenders/templates/barplan.html:52 +#: bartenders/templates/barplan.html:11 bartenders/templates/barplan.html:53 #: events/templates/events.html:12 msgid "Vis nuværende" msgstr "Show current" -#: bartenders/templates/barplan.html:13 bartenders/templates/barplan.html:54 +#: bartenders/templates/barplan.html:13 bartenders/templates/barplan.html:55 #: events/templates/events.html:14 msgid "Vis også tidligere" msgstr "Also show earlier" @@ -114,18 +166,30 @@ msgstr "Responsible" msgid "Bartendere" msgstr "Bartenders" -#: bartenders/templates/barplan.html:49 +#: bartenders/templates/barplan.html:34 +msgid "Bartender's first shift" +msgstr "Bartender's first shift" + +#: bartenders/templates/barplan.html:50 bartenders/views.py:147 msgid "Pantvagter" msgstr "Deposit shifts" -#: bartenders/templates/barplan.html:60 +#: bartenders/templates/barplan.html:61 msgid "Uge" msgstr "Week" -#: bartenders/templates/barplan.html:61 udlejning/models.py:107 +#: bartenders/templates/barplan.html:62 udlejning/models.py:107 msgid "Ansvarlige" msgstr "Responsible" +#: bartenders/templates/barplan.html:74 +msgid "Bartender's first deposit shift" +msgstr "Bartender's first deposit shift" + +#: bartenders/templates/barplan.html:79 +msgid "Edit" +msgstr "Edit" + #: bartenders/templates/bartender_info.html:38 msgid "Bartender status" msgstr "Bartender status" @@ -148,8 +212,7 @@ msgstr "If you wish to be active again, contact" #: bartenders/templates/bartender_info.html:48 msgid "" -"Husk at du som inaktiv bartender ikke kan komme til " -"bartenderarrangementerne." +"Husk at du som inaktiv bartender ikke kan komme til bartenderarrangementerne." msgstr "" "Remember that as an inactive bartender you cannot come to the bartending " "events." @@ -245,8 +308,8 @@ msgid "" "begivenheder, såsom ølsmagning og lign. Alt sammen gratis for bartendere." msgstr "" "In addition to this, you are invited to our annual events for bartenders, " -"such as the Summer Party and the Christmas Lunch. In addition, there will be" -" ongoing cool events, such as beer tasting and the like. All free for " +"such as the Summer Party and the Christmas Lunch. In addition, there will be " +"ongoing cool events, such as beer tasting and the like. All free for " "bartenders." #: bartenders/templates/index.html:16 @@ -265,8 +328,7 @@ msgstr "" "before you sign up, so you know what a typical shift in Fredagscaféen " "involve." -#: bartenders/templates/index.html:23 -#| msgid "Indsat" +#: bartenders/templates/index.html:23 udlejning/templates/udlejning.html:120 msgid "Indsend" msgstr "Submit" @@ -274,6 +336,61 @@ msgstr "Submit" msgid "Bartendertilmeldingen er lukket." msgstr "Bartender applications are closed." +#: bartenders/views.py:62 +msgid "Din ansøgning er blevet indsendt." +msgstr "Your application has been submitted." + +#: bartenders/views.py:108 +msgid "Barvagter" +msgstr "Bar shifts" + +#: bartenders/views.py:131 bartenders/views.py:170 +msgid "Responsible" +msgstr "Responsible" + +#: bartenders/views.py:132 +msgid "Other bartenders" +msgstr "Other bartenders" + +#: bartenders/views.py:281 +msgid "Profil opdateret" +msgstr "Profile updated" + +#: events/admin.py:16 +msgid "Chosen options" +msgstr "Chosen options" + +#: events/admin.py:72 +msgid "Default allowed attendees" +msgstr "Default allowed attendees" + +#: events/admin.py:73 +msgid "Can be overwritten using the whitelist and blacklist above." +msgstr "Can be overwritten using the whitelist and blacklist above." + +#: events/admin.py:86 +msgid "bartenders" +msgstr "bartenders" + +#: events/forms.py:21 events/forms.py:59 +msgid "Deltager" +msgstr "Attending" + +#: events/forms.py:22 +msgid "Deltager ikke" +msgstr "Not attending" + +#: events/forms.py:91 +#, python-format +msgid "Du skal udfylde %(choice_name)s, når du deltager" +msgstr "You must fill in %(choice_name)s when you attend" + +#: events/forms.py:98 +#, python-format +msgid "Der er for mange der har valgt %(option_option)s. Vælg noget andet." +msgstr "" +"There are too many who have chosen %(option_option)s. Choose something else." + #: events/templates/events.html:8 msgid "Bartender events" msgstr "Bartender events" @@ -328,7 +445,7 @@ msgstr "" "There has been a bar guard during a bar guard plan period that ended less " "than a month ago." -#: events/templates/events.html:37 +#: events/templates/events.html:37 events/views.py:97 msgid "Tilmeldingsfrist" msgstr "Registration deadline" @@ -352,9 +469,22 @@ msgstr "Sign up" msgid "Tilmeldte" msgstr "Registered participant" -#: events/templates/events.html:68 -msgid "Navn" -msgstr "Name" +#: events/views.py:57 +msgid "Event with id does not exist" +msgstr "Event with id does not exist" + +#: events/views.py:61 +msgid "Not logged in as an active bartender" +msgstr "Not logged in as an active bartender" + +#: events/views.py:71 +#, python-format +msgid "Opdateret tilmelding til %(event_name)s" +msgstr "Updated registration for %(event_name)s" + +#: events/views.py:79 +msgid "Bartender Events" +msgstr "Bartender Events" #: fredagscafeen/admin_filters.py:30 msgid "All" @@ -395,8 +525,8 @@ msgstr "Guides" #: guides/templates/guides.html:9 msgctxt "Fredagscaféen" msgid "" -"Her ligger alle de lækre guides, som er rare at have, når man involverer sig" -" i driften af" +"Her ligger alle de lækre guides, som er rare at have, når man involverer sig " +"i driften af" msgstr "" "Here are all the delicious guides that are nice to have when you get " "involved in the operation of" @@ -487,8 +617,8 @@ msgstr "Expected consumption" #: udlejning/models.py:64 msgid "" -"Hvilke slags øl eller andre drikkevarer ønskes der og hvor mange fustager af" -" hver type?" +"Hvilke slags øl eller andre drikkevarer ønskes der og hvor mange fustager af " +"hver type?" msgstr "" "What types of beer or other beverages are desired and how many kegs of each " "type?" @@ -570,7 +700,6 @@ msgid "Uspecificeret" msgstr "Unspecified" #: udlejning/templates/udlejning.html:21 -#| msgid "reserveret af" msgid "anlæg, reserveret af" msgstr "kegerator, reserved by" @@ -591,8 +720,8 @@ msgid "" "Hvis vores anlæg ikke allerede er udlånt, kan du låne det ved at udfylde " "ansøgninsformularen nederst på denne side." msgstr "" -"If our equipment is not already on loan, you can borrow it by filling in the" -" application form at the bottom of this page." +"If our equipment is not already on loan, you can borrow it by filling in the " +"application form at the bottom of this page." #: udlejning/templates/udlejning.html:37 msgid "Anlæg udlånes kun til" @@ -616,8 +745,7 @@ msgstr "Internal events" #: udlejning/templates/udlejning.html:41 msgid "" -"Udelukkende arrangementer der finder sted på universitetet. Dette " -"inkluderer:" +"Udelukkende arrangementer der finder sted på universitetet. Dette inkluderer:" msgstr "Exclusive events that take place at the university. This includes:" #: udlejning/templates/udlejning.html:43 @@ -634,8 +762,8 @@ msgstr "Events with association" #: udlejning/templates/udlejning.html:49 msgid "" -"Arrangementer der finder sted på universitetet eller andetsteds, kan være af" -" privat natur. Dette inkluderer:" +"Arrangementer der finder sted på universitetet eller andetsteds, kan være af " +"privat natur. Dette inkluderer:" msgstr "" "Events that take place at the university or elsewhere may be of a private " "nature. This includes:" @@ -665,9 +793,9 @@ msgid "" "Forløber som det har gjort indtil nu, udlån inkluderer opstilling, kulsyre " "og skylning af anlægget, 50 glas (1 rulle) tilkøbes for 150,- pr. stk." msgstr "" -"Precursor as it has been until now, lending includes setting up, carbonation" -" and rinsing of the system, 50 cups (1 roll) can be purchased for DKK 150 " -"per PCS." +"Precursor as it has been until now, lending includes setting up, carbonation " +"and rinsing of the system, 50 cups (1 roll) can be purchased for DKK 150 per " +"PCS." #: udlejning/templates/udlejning.html:65 msgid "" @@ -676,9 +804,9 @@ msgid "" "Afleveringstid af anlægget skal aftales i dialog med den ansvarlige for det " "praktiske, og er ikke nødvendigvis samme dag." msgstr "" -"Here, loans only include unlocking and unlocking of the draft beer facility." -" This means that the plant must be picked up in Ada-0, and delivered cleaned" -" in Ada-0. The delivery time of the installation must be agreed in dialogue " +"Here, loans only include unlocking and unlocking of the draft beer facility. " +"This means that the plant must be picked up in Ada-0, and delivered cleaned " +"in Ada-0. The delivery time of the installation must be agreed in dialogue " "with the person responsible for the practical, and is not necessarily the " "same day." @@ -688,10 +816,10 @@ msgstr "Request rental in good time" #: udlejning/templates/udlejning.html:71 msgid "" -"Når du låner et anlæg, skal der på udlåningsdagen samt tilbagelevering, være" -" et bestyrelsesmedlem der står for det praktiske. Vi er alle frivillige og " -"har studier og jobs ved siden af vorest bestyrelsesarbejde, og derfor kan vi" -" ikke være sikre på at kunne stille et besyterelsesmedlem til rådighed." +"Når du låner et anlæg, skal der på udlåningsdagen samt tilbagelevering, være " +"et bestyrelsesmedlem der står for det praktiske. Vi er alle frivillige og " +"har studier og jobs ved siden af vorest bestyrelsesarbejde, og derfor kan vi " +"ikke være sikre på at kunne stille et besyterelsesmedlem til rådighed." msgstr "" "When you borrow a facility, there must be a board member responsible for " "practical matters on the day of lending and return. We are all volunteers " @@ -712,15 +840,15 @@ msgid "" "mulighed for at være der i en af de mulige tidsrum. Hvis ikke du skriver " "mindst 7 dage i forvejen, kan vi ikke garantere at vi kan melde ud hvorvidt " "udlejning er muligt i god tid, dog er det stadig muligt at kunne låne " -"anlægget selv hvis man melder ud i dårlig tid, vi kan blot ikke garantere at" -" der kommer et svar i god tid." +"anlægget selv hvis man melder ud i dårlig tid, vi kan blot ikke garantere at " +"der kommer et svar i god tid." msgstr "" "We will therefore, no later than 5 days before, announce whether someone on " "the board has the opportunity to be there during one of the possible times. " "If you do not write at least 7 days in advance, we cannot guarantee that we " "can announce whether or not renting is possible in good time, however it is " -"still possible to borrow the facility even if you announce at a bad time, we" -" just cannot guarantee that there will be an answer in good time." +"still possible to borrow the facility even if you announce at a bad time, we " +"just cannot guarantee that there will be an answer in good time." #: udlejning/templates/udlejning.html:78 msgid "Generelle informationer" @@ -736,8 +864,7 @@ msgstr "Our primary draft beer is" #: udlejning/templates/udlejning.html:90 msgid "" -", som kommer i 25 liters fustager. Prisen er 750 kr. pr. fustage (incl. " -"moms)" +", som kommer i 25 liters fustager. Prisen er 750 kr. pr. fustage (incl. moms)" msgstr "" ", which comes in 25 liter kegs. The price is DKK 750 per keg (incl. VAT)" @@ -762,16 +889,15 @@ msgid "" "Vi sælger også Magners Cider på fustage, der koster 1250 kr. pr. fustage " "(incl. moms)." msgstr "" -"We also sell Magners Cider in kegs, which costs DKK 1250 per keg (incl. " -"VAT)." +"We also sell Magners Cider in kegs, which costs DKK 1250 per keg (incl. VAT)." #: udlejning/templates/udlejning.html:105 msgid "" "Vi har et sortiment af special-øl tilgængeligt på: (det er ikke tilgængelig " "pt. men man kan skrive en mail til" msgstr "" -"We have a range of specialty beers available at: (it is not available at the" -" moment, but you can write an email to" +"We have a range of specialty beers available at: (it is not available at the " +"moment, but you can write an email to" #: udlejning/templates/udlejning.html:108 msgid "" @@ -995,5 +1121,9 @@ msgstr "Log out" msgid "er en fredagsbar for datalogi og IT på Aarhus Universitet." msgstr "is a friday bar for computer science and IT at Aarhus University." +#: web/views.py:47 +msgid "Login mail sendt: Tryk på linket i din modtagede mail for at logge ind." +msgstr "" + #~ msgid "Fadølsanlæggene" #~ msgstr "Kegerators" diff --git a/web/views.py b/web/views.py index d309dc6..506ab8b 100644 --- a/web/views.py +++ b/web/views.py @@ -2,6 +2,7 @@ from django.contrib import messages from django.contrib.auth import REDIRECT_FIELD_NAME, authenticate, login, logout from django.shortcuts import redirect +from django.utils.translation import ugettext_lazy as _ from django.views.decorators.http import require_GET, require_POST from django.views.generic import TemplateView from django.views.generic.edit import FormView @@ -43,7 +44,9 @@ def form_valid(self, form): form.send_email(self.request.GET.get("next")) messages.success( self.request, - "Login mail sendt: Tryk på linket i din modtagede mail for at logge ind.", + _( + "Login mail sendt: Tryk på linket i din modtagede mail for at logge ind." + ), ) return super().form_valid(form)
#NavnForbrug{% translate "Navn" %}{% translate "Forbrug" %}
{{ shift.responsible.name }} {% for bartender in shift.other_bartenders.all %} - {% if bartender.first_bartender_shift == shift %}{{ bartender.name }}{% else %}{{ bartender.name }}{% endif %}{% if not forloop.last %},{% endif %} + {% translate "Bartender's first shift" as FIRST_SHIFT_TEXT %} + {% if bartender.first_bartender_shift == shift %}{{ bartender.name }}{% else %}{{ bartender.name }}{% endif %}{% if not forloop.last %},{% endif %} {% endfor %} {{ shift.start_date | date:"d M" }}{% if show_all %} {{ shift.start_date.year }}{% endif %} - {{ shift.end_date | date:"d M" }}{% if show_all %} {{ shift.end_date.year }}{% endif %} {% for responsible in shift.responsibles.all %} - {% if responsible.first_deposit_shift == shift %}{{ responsible.name }}{% else %}{{ responsible.name }}{% endif %}{% if not forloop.last %},{% endif %} + {% translate "Bartender's first deposit shift" as FIRST_DEPOSIT_SHIFT_TEXT %} + {% if responsible.first_deposit_shift == shift %}{{ responsible.name }}{% else %}{{ responsible.name }}{% endif %}{% if not forloop.last %},{% endif %} {% endfor %}