From 0a59946f1691e4000cefda4a5e934e50c3edde06 Mon Sep 17 00:00:00 2001 From: Anders Bruun Severinsen <202204885@post.au.dk> Date: Wed, 26 Jun 2024 20:37:02 +0200 Subject: [PATCH 01/17] Matched logo color --- web/static/css/stylesheet.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/static/css/stylesheet.css b/web/static/css/stylesheet.css index 350d2be..91dc8cf 100644 --- a/web/static/css/stylesheet.css +++ b/web/static/css/stylesheet.css @@ -1,6 +1,10 @@ +:root { + --datblue: #152ff5; + } + .banner h1 { - color: midnightblue; - font-family: serif; + color: var(--datblue); + font-family: "Times New Roman", Times, serif; display: inline-block; } From 46a4a73c3eb1898cd72d19ea488497c624050d50 Mon Sep 17 00:00:00 2001 From: Anders Bruun Severinsen <202204885@post.au.dk> Date: Thu, 27 Jun 2024 19:18:05 +0200 Subject: [PATCH 02/17] Adding internationalization --- bartenders/models.py | 21 +-- bartenders/templates/index.html | 18 +-- fredagscafeen/settings/base.py | 23 ++++ fredagscafeen/urls.py | 6 +- locale/da/LC_MESSAGES/django.mo | Bin 0 -> 544 bytes locale/da/LC_MESSAGES/django.po | 203 +++++++++++++++++++++++++++++ locale/en/LC_MESSAGES/django.mo | Bin 0 -> 3493 bytes locale/en/LC_MESSAGES/django.po | 219 ++++++++++++++++++++++++++++++++ web/static/css/stylesheet.css | 23 +++- web/static/images/dannebro.png | Bin 0 -> 8516 bytes web/static/images/unionjac.png | Bin 0 -> 5781 bytes web/templates/base.html | 82 ++++++++---- 12 files changed, 545 insertions(+), 50 deletions(-) create mode 100644 locale/da/LC_MESSAGES/django.mo create mode 100644 locale/da/LC_MESSAGES/django.po create mode 100644 locale/en/LC_MESSAGES/django.mo create mode 100644 locale/en/LC_MESSAGES/django.po create mode 100644 web/static/images/dannebro.png create mode 100644 web/static/images/unionjac.png diff --git a/bartenders/models.py b/bartenders/models.py index a02ae3b..48ae573 100644 --- a/bartenders/models.py +++ b/bartenders/models.py @@ -10,6 +10,7 @@ from django.urls import reverse from django.utils import timezone from django.utils.safestring import mark_safe +from django.utils.translation import ugettext_lazy as _ from fredagscafeen.email import send_template_email @@ -47,28 +48,28 @@ class BartenderCommon(models.Model): class Meta: abstract = True - name = models.CharField(max_length=140, verbose_name="Fulde navn") - username = models.CharField(max_length=140, unique=True, verbose_name="Brugernavn") + name = models.CharField(max_length=140, verbose_name=_("Fulde navn")) + username = models.CharField(max_length=140, unique=True, verbose_name=_("Brugernavn")) email = models.CharField(max_length=255, unique=True, blank=True) studentNumber = models.IntegerField( - blank=True, null=True, verbose_name="Studienummer" + blank=True, null=True, verbose_name=_("Studienummer") ) phoneNumber = models.IntegerField( - blank=True, null=True, verbose_name="Telefonnummer" + blank=True, null=True, verbose_name=_("Telefonnummer") ) tshirt_size = models.CharField( choices=TSHIRT_SIZE_CHOICES, max_length=10, blank=True, null=True, - verbose_name="T-shirt størrelse", + verbose_name=_("T-shirt størrelse"), ) class Bartender(BartenderCommon): isActiveBartender = models.BooleanField(default=True) prefer_only_early_shifts = models.BooleanField( - default=False, verbose_name="Jeg foretrækker ikke at have nogle sene barvagter" + default=False, verbose_name=_("Jeg foretrækker ikke at have nogle sene barvagter") ) @property @@ -224,14 +225,14 @@ def get_current_period(cls): def __str__(self): start_year = self.start_date.year - return f"{start_year} / {start_year + 1} ({self.start_date} til {self.end_date_display})" + return f"{start_year} / {start_year + 1} ({self.start_date} {_("til")} {self.end_date_display})" class BartenderApplication(BartenderCommon): - study = models.CharField(max_length=50, verbose_name="Studie") - study_year = models.IntegerField(verbose_name="Årgang") + study = models.CharField(max_length=50, verbose_name=_("Studie")) + study_year = models.IntegerField(verbose_name=_("Årgang")) info = models.TextField( - blank=True, help_text="Eventuelle ekstra info til bestyrelsen skrives her" + blank=True, help_text=_("Eventuelle ekstra info til bestyrelsen skrives her") ) created = models.DateTimeField(auto_now_add=True) diff --git a/bartenders/templates/index.html b/bartenders/templates/index.html index c52e1e6..e4c588d 100644 --- a/bartenders/templates/index.html +++ b/bartenders/templates/index.html @@ -1,20 +1,20 @@ {% extends 'base.html' %} - +{% load i18n %} {% load static %} {% load bootstrap3 %} {% block content %} -Velkommen til Fredagscaféens webside, her kan du finde information om åbningstider, sortiment, udlejning af fadølsanlæg og grill mm. +{% translate "Velkommen til Fredagscaféens webside, her kan du finde information om åbningstider, sortiment, udlejning af fadølsanlæg og grill mm." %}
-

Bartendertilmelding

-

Er du interesseret i at være med i et fedt fællesskab hvor vi hygger bag baren og serverer nogle kolde drikkevarer?

-

Du vil som bartender få ca. 2 vagter pr. semester, hvor du er med til at sikre at alle får slukket tørsten.

-

Udover dette inviteres du til vores årlige arrangementer for bartendere, såsom Sommerfesten og Julefrokosten. Derudover vil der løbende være fede begivenheder, såsom ølsmagning og lign. Alt sammen gratis for bartendere.

-

Det er en god idé at læse barvagt-guiden før du tilmelder dig, så du - ved hvad en typisk vagt i Fredagscaféen indebærer.

+

{% translate "Bartendertilmelding" %}

+

{% translate "Er du interesseret i at være med i et fedt fællesskab hvor vi hygger bag baren og serverer nogle kolde drikkevarer?" %}

+

{% translate "Du vil som bartender få ca. 2 vagter pr. semester, hvor du er med til at sikre at alle får slukket tørsten." %}

+

{% translate "Udover dette inviteres du til vores årlige arrangementer for bartendere, såsom Sommerfesten og Julefrokosten. Derudover vil der løbende være fede begivenheder, såsom ølsmagning og lign. Alt sammen gratis for bartendere." %}

+

{% translate "Det er en god idé at læse" %} {% translate "barvagt-guiden" %} + {% translate "før du tilmelder dig, så du ved hvad en typisk vagt i Fredagscaféen indebærer." %}

{% if config.REGISTRATION_OPEN %}
{% csrf_token %} @@ -24,7 +24,7 @@

Bartendertilmelding

{% endbuttons %}
{% else %} - Bartendertilmeldingen er lukket. + {% translate "Bartendertilmeldingen er lukket." %} {% endif %}
diff --git a/fredagscafeen/settings/base.py b/fredagscafeen/settings/base.py index 0361149..79e27ac 100644 --- a/fredagscafeen/settings/base.py +++ b/fredagscafeen/settings/base.py @@ -177,12 +177,14 @@ "guides", "events", "printer", + "rosetta", ) MIDDLEWARE = ( "django.middleware.security.SecurityMiddleware", "whitenoise.middleware.WhiteNoiseMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", + 'django.middleware.locale.LocaleMiddleware', # Used for internationalization. Has to be after sessions but before common "corsheaders.middleware.CorsMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", @@ -254,6 +256,27 @@ USE_TZ = True +from django.utils.translation import gettext_lazy as _ + +LANGUAGES = ( + ('da', _('Danish')), + ('en', _('English')), +) + +PARLER_LANGUAGES = { + None : ( + {'code': 'da',}, + {'code': 'en',}, + ), + 'default': { + 'fallbacks': ['da'], + 'hide_untranslated': False, + } +} + +LOCALE_PATHS = ( + os.path.join(BASE_DIR, 'locale/'), +) # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.8/howto/static-files/ diff --git a/fredagscafeen/urls.py b/fredagscafeen/urls.py index f977448..efedcc2 100644 --- a/fredagscafeen/urls.py +++ b/fredagscafeen/urls.py @@ -3,13 +3,15 @@ from django.contrib import admin from django.urls import include, path from django.views.generic import RedirectView +from django.conf.urls.i18n import i18n_patterns -urlpatterns = [ +urlpatterns = i18n_patterns ( path("favicon.ico", RedirectView.as_view(url="/static/favicon.ico")), path("admin/", admin.site.urls), path("api/", include("api.urls")), path("", include("web.urls")), -] + path("rosetta/", include("rosetta.urls")), +) if settings.DEBUG: # Handle user-uploaded content during development diff --git a/locale/da/LC_MESSAGES/django.mo b/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c20b14dcf69e4bae652ff1934d8311fc8848d136 GIT binary patch literal 544 zcmY+A%Sr<=6o%s+#+B{_g}75B-c~ZTVsug+olBXvg6?7)r=u|`Nh%7yhVP&YcP<4N zzK74^i6X_reDf!B{=@v7uldO*1T_sT0tqk+JOaL+feGLR@Say-26zL;fp@_7KY)WV zgg!whfoW(?fzE<@{~W0IEr7yp)7kS2lgj+}2hAS(%(S>j*QOkKAVC_ZY!rKIeKR=J$_WL(dl*0-C+^+GK=Mk} zaJSEm6|UZCH^|P&=VM(7LzwF7UZu(q?_5?cXv(4Ck~FlrwINo6pR28J*YNMLzM}AQ Z9dE7H0>510w`*_wa)kuV#5FqM=o^WNe}@17 literal 0 HcmV?d00001 diff --git a/locale/da/LC_MESSAGES/django.po b/locale/da/LC_MESSAGES/django.po new file mode 100644 index 0000000..465fbdc --- /dev/null +++ b/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,203 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-27 13:48+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \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" + +#: bartenders/migrations/0001_initial.py:29 +#: bartenders/migrations/0001_initial.py:92 +msgid "Fulde navn" +msgstr "" + +#: bartenders/migrations/0001_initial.py:33 +#: bartenders/migrations/0001_initial.py:96 +msgid "Brugernavn" +msgstr "" + +#: bartenders/migrations/0001_initial.py:40 +#: bartenders/migrations/0001_initial.py:103 +msgid "Studienummer" +msgstr "" + +#: bartenders/migrations/0001_initial.py:46 +#: bartenders/migrations/0001_initial.py:109 +msgid "Telefonnummer" +msgstr "" + +#: bartenders/migrations/0001_initial.py:64 +#: bartenders/migrations/0001_initial.py:127 +msgid "T-shirt størrelse" +msgstr "" + +#: bartenders/migrations/0001_initial.py:72 +msgid "Jeg foretrækker ikke at have nogle sene barvagter" +msgstr "" + +#: bartenders/migrations/0001_initial.py:130 +msgid "Studie" +msgstr "" + +#: bartenders/migrations/0001_initial.py:131 +msgid "Årgang" +msgstr "" + +#: bartenders/migrations/0001_initial.py:136 +msgid "Eventuelle ekstra info til bestyrelsen skrives her" +msgstr "" + +#: bartenders/templates/index.html:8 +msgid "" +"Velkommen til Fredagscaféens webside, her kan du finde information om " +"åbningstider, sortiment, udlejning af fadølsanlæg og grill mm." +msgstr "" + +#: bartenders/templates/index.html:12 +msgid "Bartendertilmelding" +msgstr "" + +#: bartenders/templates/index.html:13 +msgid "" +"Er du interesseret i at være med i et fedt fællesskab hvor vi hygger bag " +"baren og serverer nogle kolde drikkevarer?" +msgstr "" + +#: bartenders/templates/index.html:14 +msgid "" +"Du vil som bartender få ca. 2 vagter pr. semester, hvor du er med til at " +"sikre at alle får slukket tørsten." +msgstr "" + +#: bartenders/templates/index.html:15 +msgid "" +"Udover dette inviteres du til vores årlige arrangementer for bartendere, " +"såsom Sommerfesten og Julefrokosten. Derudover vil der løbende være fede " +"begivenheder, såsom ølsmagning og lign. Alt sammen gratis for bartendere." +msgstr "" + +#: bartenders/templates/index.html:16 +msgid "Det er en god idé at læse" +msgstr "" + +#: bartenders/templates/index.html:16 +msgid "barvagt-guiden" +msgstr "" + +#: bartenders/templates/index.html:17 +msgid "" +"før du tilmelder dig, så du ved hvad en typisk vagt i Fredagscaféen " +"indebærer." +msgstr "" + +#: bartenders/templates/index.html:27 +msgid "Bartendertilmeldingen er lukket." +msgstr "" + +#: fredagscafeen/admin_filters.py:30 +msgid "All" +msgstr "Alle" + +#: fredagscafeen/admin_filters.py:30 +msgid "Yes" +msgstr "Ja" + +#: fredagscafeen/admin_filters.py:30 +msgid "No" +msgstr "Nej" + +#: fredagscafeen/settings/base.py:262 +msgid "Danish" +msgstr "Dansk" + +#: fredagscafeen/settings/base.py:263 +msgid "English" +msgstr "Engelsk" + +#: web/templates/base.html:59 +msgid "Forside" +msgstr "" + +#: web/templates/base.html:60 +msgid "Barplan" +msgstr "" + +#: web/templates/base.html:61 +msgid "Bartendere" +msgstr "" + +#: web/templates/base.html:65 +msgid "Udlejning" +msgstr "" + +#: web/templates/base.html:67 +msgid "Udlejning af fadølsanlæg" +msgstr "" + +#: web/templates/base.html:68 +msgid "Udlejning af grill" +msgstr "" + +#: web/templates/base.html:69 +msgid "Udlejning af projektor" +msgstr "" + +#: web/templates/base.html:69 +msgid "lærred" +msgstr "" + +#: web/templates/base.html:70 +msgid "Udlejning af højtalere" +msgstr "" + +#: web/templates/base.html:74 +msgid "Guides" +msgstr "" + +#: web/templates/base.html:76 +msgid "Bestyrelsen" +msgstr "" + +#: web/templates/base.html:77 +msgid "Events" +msgstr "" + +#: web/templates/base.html:78 +msgid "Om baren" +msgstr "" + +#: web/templates/base.html:80 +msgid "Profil" +msgstr "" + +#: web/templates/base.html:82 +msgid "Krydlistestatus" +msgstr "" + +#: web/templates/base.html:83 +msgid "Bartenderprofil" +msgstr "" + +#: web/templates/base.html:86 +msgid "Admin" +msgstr "" + +#: web/templates/base.html:91 +msgid "Log ud" +msgstr "" + +#: web/templates/base.html:109 +msgid "er en fredagsbar for datalogi og IT på Aarhus Universitet." +msgstr "" diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b30aa314855410e2fed4f8fd7b12ef74d3fbe6d7 GIT binary patch literal 3493 zcmZuz&yO5O6)r*`uz(3cfCNN55VC-5595U-&e|J1w%5)kYwv2kYr?T+`b~H3bXSe5 zs%JA1IiX1W5C;w*!3hpoB^NFTVIgrE4*UgNkPt{n5u6Z4LIQ;NUUkQ_>%{W**FUP> zd-dM;-Zy`I?BO3O{5y-kPvdXK!dvN;-o*w~z3%COO9`M7!9|1oKJO&c* z*T4?|{{WPAZvsCB{0Gni&%9fy2KWl_y}*0GHQ>L2Vn2Jh-S;F=zFz{$_v=9M_j33C zyTJG1`3K$ePdfY=@Pl~&I`A>zFM%Hd{tozl;O~K-1pcY}{vY5c@O%b`{5bF|@Xx>v z;J1OFK@ewvuLCate+AqF-UCX!*KiTMiOctqyW2p?*Iy8v#P>H`BoFt19|8Uk_%Yz4 z2}fRe9AJAAyuF9F5g(?F^3vp~uJ9#HZ+?A|xPH}U)(;H$tp zFedB%1snh$LGpKiTR^e*W1z(SQz^lgwVzfxVPu=LXL;4$PQ4qOYWW;ZRdbaa zTfEadw#1&QW-{T}Q2MkC#$HJa%nV(ZlRC~yt)>{qFrIZt^bHfzoa5sJNFCZ6R+R~3s1PoWKr z;^MByR@+mXX``{Q!y(`j$;h7B;uxF7njyR!bB@d67?whq=wa(}W~iJOI2A%IBwU=x z6$s4FV9Aqp1w2n&l{4kuASW}d@n2J$Gqy3b(6EHZlMuZoW5+JVKU`*x!o-^y2P)aC zYt9Fgv%1!Z(Ui^W4PFHGJQp-}IDlUq!;>fRCr2su3@cM8r~^x!Z5GuFex6qbi3m~0 zCa7%$-{fj1r5+{QZA*VEHo0Ndf^F&=aqMTIG#*KoRHh26eXe-yY`5SbulUdkOYYy1 z9@ALoi@R0O7S(>>Q{hcjonBoo?jA;62_H{c0VfZ65}n6uhg?(6F*33@GpUe524Mks zfxMyel_`)5@3k$!8mYGAYRNEOrLcHSNO#N0`NqPmRLtiaoXWe2OMIcL?3>o5uoRsF z+TI;X&vcXlQ;=dVP%&HL9`x)i%eiY^NKS+$2+8(nP$7pJF3}5KM-v{1tEX;rHIbNX zI?*-Hxh}#;j~8#S4Rpjq;RAXAp-i-ulaGyrBUJJ=OgfySMiPeNIYg|Mn4FJBGO>z^ zca?fueI(3O6{_o=>UfhC!Z)kn4>66~c z7sen>S0kAvFqNAkB}(4T&~@cZ=VCw3rzT8N+oKatpB_idc_@wQdkTC44|BD6)fcF; zaQBc$G26S_wt2**Jt@YQwn)RQ`)}E$wUs+#!>WThZzmJ949?y&zf9G}QpXm3W?5}L=5VL)d zFH{<&T_>W8dKfNEL8_i^dims8tg%I-3(odg*Xy)BxOx3RV!gP%eW@}%=ZobU#CT)t z#^&;1=X(8>D-N`_@H3wx;K(no$^5XqNah@H7WFtSsL0sk?JVs6Z z-ZQ;tR+chDyQg#}EHwl(U4-U@@{pcRD>F)UII-@;+kl>C8dY$XLv5V)xjMl3wYp}t zg;9 zo##eIgRV{u3K@#YlB5!nE9U9Q8%$R#BZk#;uqx_PL40u6iO&|Q#~_pB!n#g#H2i?@ z+$B-%LpM(-jccMB4CRVmO_djgnJ1l@6J!KQSn7;v, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-06-27 13:48+0200\n" +"PO-Revision-Date: 2024-06-27 13:28+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" + +#: bartenders/migrations/0001_initial.py:29 +#: bartenders/migrations/0001_initial.py:92 +msgid "Fulde navn" +msgstr "Full name" + +#: bartenders/migrations/0001_initial.py:33 +#: bartenders/migrations/0001_initial.py:96 +msgid "Brugernavn" +msgstr "Username" + +#: bartenders/migrations/0001_initial.py:40 +#: bartenders/migrations/0001_initial.py:103 +msgid "Studienummer" +msgstr "Study number" + +#: bartenders/migrations/0001_initial.py:46 +#: bartenders/migrations/0001_initial.py:109 +msgid "Telefonnummer" +msgstr "Phone number" + +#: bartenders/migrations/0001_initial.py:64 +#: bartenders/migrations/0001_initial.py:127 +msgid "T-shirt størrelse" +msgstr "T-shirt size" + +#: bartenders/migrations/0001_initial.py:72 +msgid "Jeg foretrækker ikke at have nogle sene barvagter" +msgstr "I prefer to not have any late shifts" + +#: bartenders/migrations/0001_initial.py:130 +msgid "Studie" +msgstr "Study" + +#: bartenders/migrations/0001_initial.py:131 +msgid "Årgang" +msgstr "Year" + +#: bartenders/migrations/0001_initial.py:136 +msgid "Eventuelle ekstra info til bestyrelsen skrives her" +msgstr "Any additional information for the board can be written here" + +#: bartenders/templates/index.html:8 +msgid "" +"Velkommen til Fredagscaféens webside, her kan du finde information om " +"åbningstider, sortiment, udlejning af fadølsanlæg og grill mm." +msgstr "" +"Welcome to Fredagscaféens website. Here you can find information about " +"openning hours, selection, rental of kegerator and grill etc." + +#: bartenders/templates/index.html:12 +msgid "Bartendertilmelding" +msgstr "Bartender application" + +#: bartenders/templates/index.html:13 +msgid "" +"Er du interesseret i at være med i et fedt fællesskab hvor vi hygger bag " +"baren og serverer nogle kolde drikkevarer?" +msgstr "" +"Are you interested in becoming a member of a cool community, where we have " +"fun behind the bar and serve some cold drinks?" + +#: bartenders/templates/index.html:14 +msgid "" +"Du vil som bartender få ca. 2 vagter pr. semester, hvor du er med til at " +"sikre at alle får slukket tørsten." +msgstr "" +"As a bartender, you will get approx. 2 shifts per semester, where you help " +"to ensure that everyone quenches their thirst." + +#: bartenders/templates/index.html:15 +msgid "" +"Udover dette inviteres du til vores årlige arrangementer for bartendere, " +"såsom Sommerfesten og Julefrokosten. Derudover vil der løbende være fede " +"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 " +"bartenders." + +#: bartenders/templates/index.html:16 +msgid "Det er en god idé at læse" +msgstr "It is a good idea to read the" + +#: bartenders/templates/index.html:16 +msgid "barvagt-guiden" +msgstr "bar shift-guide" + +#: bartenders/templates/index.html:17 +msgid "" +"før du tilmelder dig, så du ved hvad en typisk vagt i Fredagscaféen " +"indebærer." +msgstr "" +"before you sign up, so you know what a typical shift in Fredagscaféen " +"involve." + +#: bartenders/templates/index.html:27 +msgid "Bartendertilmeldingen er lukket." +msgstr "Bartender applications are closed." + +#: fredagscafeen/admin_filters.py:30 +msgid "All" +msgstr "" + +#: fredagscafeen/admin_filters.py:30 +msgid "Yes" +msgstr "" + +#: fredagscafeen/admin_filters.py:30 +msgid "No" +msgstr "" + +#: fredagscafeen/settings/base.py:262 +msgid "Danish" +msgstr "" + +#: fredagscafeen/settings/base.py:263 +msgid "English" +msgstr "" + +#: web/templates/base.html:59 +msgid "Forside" +msgstr "Home" + +#: web/templates/base.html:60 +msgid "Barplan" +msgstr "Bar Plan" + +#: web/templates/base.html:61 +msgid "Bartendere" +msgstr "Bartenders" + +#: web/templates/base.html:65 +msgid "Udlejning" +msgstr "Rental" + +#: web/templates/base.html:67 +msgid "Udlejning af fadølsanlæg" +msgstr "Rental of kegerator" + +#: web/templates/base.html:68 +msgid "Udlejning af grill" +msgstr "Rental of grill" + +#: web/templates/base.html:69 +msgid "Udlejning af projektor" +msgstr "Rental of projector" + +#: web/templates/base.html:69 +msgid "lærred" +msgstr "screen" + +#: web/templates/base.html:70 +msgid "Udlejning af højtalere" +msgstr "Rental of speakers" + +#: web/templates/base.html:74 +msgid "Guides" +msgstr "Guides" + +#: web/templates/base.html:76 +msgid "Bestyrelsen" +msgstr "Board" + +#: web/templates/base.html:77 +msgid "Events" +msgstr "Events" + +#: web/templates/base.html:78 +msgid "Om baren" +msgstr "About" + +#: web/templates/base.html:80 +msgid "Profil" +msgstr "Profile" + +#: web/templates/base.html:82 +msgid "Krydlistestatus" +msgstr "Tab status" + +#: web/templates/base.html:83 +msgid "Bartenderprofil" +msgstr "Bartender profile" + +#: web/templates/base.html:86 +msgid "Admin" +msgstr "Admin" + +#: web/templates/base.html:91 +msgid "Log ud" +msgstr "Log out" + +#: web/templates/base.html:109 +msgid "er en fredagsbar for datalogi og IT på Aarhus Universitet." +msgstr "is a friday bar for computer science and IT at Aarhus University." + +#~ msgid "Bartender" +#~ msgstr "Bartender" diff --git a/web/static/css/stylesheet.css b/web/static/css/stylesheet.css index 91dc8cf..4618983 100644 --- a/web/static/css/stylesheet.css +++ b/web/static/css/stylesheet.css @@ -8,16 +8,37 @@ display: inline-block; } -.banner img { +.logo { height: 50px; display: inline-block; padding-bottom: 12px; } +.locale { + float: right; + margin: 10px; + padding: 0px; + height: 25px; + border: solid; + border-width: 0px; + border-radius: 5px; + border-color: white; +} + +.center-align { + display: flex; + align-items: center; + justify-content: space-between; +} + ul.navbar-nav { margin: 0px !important; } +.navbar-brand { + font-family: "Times New Roman", Times, serif; +} + .navbar-default .navbar-nav > li > a { color: #337ab7 !important; } diff --git a/web/static/images/dannebro.png b/web/static/images/dannebro.png new file mode 100644 index 0000000000000000000000000000000000000000..ea85313a8de135a016ccecddfefdb024553fa12f GIT binary patch literal 8516 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