diff --git a/Dockerfile b/Dockerfile
index 483ee8bb90aacde827e23e6fcdeb7f9bbd3039c8..29a4c1f43957cc5702e202a5cb84fa8a52e53090 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -39,5 +39,5 @@ USER appuser
 # Install application into container
 COPY . .
 
-# Expose 1337 + 1 port
-EXPOSE 1338
+# Expose 1337
+EXPOSE 1337
diff --git a/Pipfile b/Pipfile
index 447e8d825439380f44787dd1eb9cec511e338998..6028696a2fb1a2388f31b4dfef9c568275bf6daf 100644
--- a/Pipfile
+++ b/Pipfile
@@ -1,17 +1,13 @@
 [[source]]
-url = "https://pypi.python.org/simple"
+url = "https://pypi.org/simple"
 verify_ssl = true
 name = "pypi"
 
 [packages]
 flask = "*"
-gunicorn = "*"
 authlib = "*"
-flask-babel = "*"
-requests = "*"
-flask-httpauth = "*"
-psycopg2-binary = "*"
 sqlalchemy = "*"
+psycopg2-binary = "*"
 
 [dev-packages]
 
diff --git a/Pipfile.lock b/Pipfile.lock
index 9bcf2d9aaa7d35b783578e702eb109ab441eaeab..fbdee4f525df6bab275956a9fb1564244c3a9c54 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "3b565a4738e47a7d0e247e78e9c2eb85638cc0965424ef39a2283297bde83fa3"
+            "sha256": "f6a2608ecef298aa46ce56f1e53a35321a979bb1f04e7d0258c3ea855b6ba7d0"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -10,7 +10,7 @@
         "sources": [
             {
                 "name": "pypi",
-                "url": "https://pypi.python.org/simple",
+                "url": "https://pypi.org/simple",
                 "verify_ssl": true
             }
         ]
@@ -24,84 +24,74 @@
             "index": "pypi",
             "version": "==1.0.1"
         },
-        "babel": {
-            "hashes": [
-                "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2",
-                "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"
-            ],
-            "markers": "python_version >= '3.6'",
-            "version": "==2.10.1"
-        },
-        "certifi": {
-            "hashes": [
-                "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7",
-                "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
-            ],
-            "markers": "python_version >= '3.6'",
-            "version": "==2022.5.18.1"
-        },
         "cffi": {
             "hashes": [
-                "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3",
-                "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2",
-                "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636",
-                "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20",
-                "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728",
-                "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27",
-                "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66",
-                "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443",
-                "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0",
-                "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7",
-                "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39",
-                "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605",
-                "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a",
-                "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37",
-                "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029",
-                "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139",
-                "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc",
-                "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df",
-                "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14",
-                "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880",
-                "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2",
-                "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a",
-                "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e",
-                "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474",
-                "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024",
-                "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8",
-                "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0",
-                "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e",
-                "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a",
-                "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e",
-                "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032",
-                "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6",
-                "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e",
-                "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b",
-                "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e",
-                "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954",
-                "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962",
-                "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c",
-                "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4",
-                "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55",
-                "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962",
-                "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023",
-                "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c",
-                "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6",
-                "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8",
-                "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382",
-                "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7",
-                "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc",
-                "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997",
-                "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"
-            ],
-            "version": "==1.15.0"
-        },
-        "charset-normalizer": {
-            "hashes": [
-                "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
-                "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
+                "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5",
+                "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef",
+                "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104",
+                "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426",
+                "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405",
+                "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375",
+                "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a",
+                "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e",
+                "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc",
+                "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf",
+                "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185",
+                "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497",
+                "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3",
+                "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35",
+                "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
+                "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83",
+                "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21",
+                "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca",
+                "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984",
+                "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac",
+                "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd",
+                "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee",
+                "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a",
+                "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2",
+                "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192",
+                "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7",
+                "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585",
+                "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f",
+                "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e",
+                "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
+                "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b",
+                "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e",
+                "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e",
+                "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d",
+                "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c",
+                "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415",
+                "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82",
+                "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02",
+                "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314",
+                "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
+                "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
+                "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3",
+                "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914",
+                "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045",
+                "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d",
+                "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9",
+                "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5",
+                "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2",
+                "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c",
+                "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3",
+                "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2",
+                "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
+                "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d",
+                "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d",
+                "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
+                "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162",
+                "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76",
+                "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
+                "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e",
+                "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9",
+                "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6",
+                "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b",
+                "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01",
+                "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"
             ],
-            "markers": "python_version >= '3'",
-            "version": "==2.0.12"
+            "version": "==1.15.1"
         },
         "click": {
             "hashes": [
@@ -113,55 +103,39 @@
         },
         "cryptography": {
             "hashes": [
-                "sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804",
-                "sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178",
-                "sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717",
-                "sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982",
-                "sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004",
-                "sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe",
-                "sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452",
-                "sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336",
-                "sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4",
-                "sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15",
-                "sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d",
-                "sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c",
-                "sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0",
-                "sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06",
-                "sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9",
-                "sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1",
-                "sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023",
-                "sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de",
-                "sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f",
-                "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181",
-                "sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e",
-                "sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a"
+                "sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59",
+                "sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596",
+                "sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3",
+                "sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5",
+                "sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab",
+                "sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884",
+                "sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82",
+                "sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b",
+                "sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441",
+                "sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa",
+                "sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d",
+                "sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b",
+                "sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a",
+                "sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6",
+                "sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157",
+                "sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280",
+                "sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282",
+                "sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67",
+                "sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8",
+                "sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046",
+                "sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327",
+                "sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9"
             ],
             "markers": "python_version >= '3.6'",
-            "version": "==37.0.2"
+            "version": "==37.0.4"
         },
         "flask": {
             "hashes": [
-                "sha256:315ded2ddf8a6281567edb27393010fe3406188bafbfe65a3339d5787d89e477",
-                "sha256:fad5b446feb0d6db6aec0c3184d16a8c1f6c3e464b511649c8918a9be100b4fe"
+                "sha256:15972e5017df0575c3d6c090ba168b6db90259e620ac8d7ea813a396bad5b6cb",
+                "sha256:9013281a7402ad527f8fd56375164f3aa021ecfaff89bfe3825346c24f87e04c"
             ],
             "index": "pypi",
-            "version": "==2.1.2"
-        },
-        "flask-babel": {
-            "hashes": [
-                "sha256:e6820a052a8d344e178cdd36dd4bb8aea09b4bda3d5f9fa9f008df2c7f2f5468",
-                "sha256:f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d"
-            ],
-            "index": "pypi",
-            "version": "==2.0.0"
-        },
-        "flask-httpauth": {
-            "hashes": [
-                "sha256:2076cf86e84c6aa442ee03344bff751eae133d35a1a48931e6f99f147161b55b",
-                "sha256:29191747bd6a6e81980fd9c415ec1279612b06ee4a7cad8463856f2ed571ec77"
-            ],
-            "index": "pypi",
-            "version": "==4.6.0"
+            "version": "==2.1.3"
         },
         "greenlet": {
             "hashes": [
@@ -224,29 +198,13 @@
             "markers": "python_version >= '3' and platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
             "version": "==1.1.2"
         },
-        "gunicorn": {
-            "hashes": [
-                "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e",
-                "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
-            ],
-            "index": "pypi",
-            "version": "==20.1.0"
-        },
-        "idna": {
-            "hashes": [
-                "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
-                "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
-            ],
-            "markers": "python_version >= '3'",
-            "version": "==3.3"
-        },
         "importlib-metadata": {
             "hashes": [
-                "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700",
-                "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"
+                "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670",
+                "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"
             ],
             "markers": "python_version < '3.10'",
-            "version": "==4.11.4"
+            "version": "==4.12.0"
         },
         "itsdangerous": {
             "hashes": [
@@ -379,94 +337,63 @@
             ],
             "version": "==2.21"
         },
-        "pytz": {
-            "hashes": [
-                "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7",
-                "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"
-            ],
-            "version": "==2022.1"
-        },
-        "requests": {
-            "hashes": [
-                "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
-                "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
-            ],
-            "index": "pypi",
-            "version": "==2.27.1"
-        },
-        "setuptools": {
-            "hashes": [
-                "sha256:68e45d17c9281ba25dc0104eadd2647172b3472d9e01f911efa57965e8d51a36",
-                "sha256:a43bdedf853c670e5fed28e5623403bad2f73cf02f9a2774e91def6bda8265a7"
-            ],
-            "markers": "python_version >= '3.7'",
-            "version": "==62.3.2"
-        },
         "sqlalchemy": {
             "hashes": [
-                "sha256:09c606d8238feae2f360b8742ffbe67741937eb0a05b57f536948d198a3def96",
-                "sha256:166a3887ec355f7d2f12738f7fa25dc8ac541867147a255f790f2f41f614cb44",
-                "sha256:16abf35af37a3d5af92725fc9ec507dd9e9183d261c2069b6606d60981ed1c6e",
-                "sha256:2e885548da361aa3f8a9433db4cfb335b2107e533bf314359ae3952821d84b3e",
-                "sha256:2ec89bf98cc6a0f5d1e28e3ad28e9be6f3b4bdbd521a4053c7ae8d5e1289a8a1",
-                "sha256:2ecac4db8c1aa4a269f5829df7e706639a24b780d2ac46b3e485cbbd27ec0028",
-                "sha256:316c7e5304dda3e3ad711569ac5d02698bbc71299b168ac56a7076b86259f7ea",
-                "sha256:5041474dcab7973baa91ec1f3112049a9dd4652898d6a95a6a895ff5c58beb6b",
-                "sha256:53d2d9ee93970c969bc4e3c78b1277d7129554642f6ffea039c282c7dc4577bc",
-                "sha256:5864a83bd345871ad9699ce466388f836db7572003d67d9392a71998092210e3",
-                "sha256:5c90ef955d429966d84326d772eb34333178737ebb669845f1d529eb00c75e72",
-                "sha256:5d50cb71c1dbed70646d521a0975fb0f92b7c3f84c61fa59e07be23a1aaeecfc",
-                "sha256:64678ac321d64a45901ef2e24725ec5e783f1f4a588305e196431447e7ace243",
-                "sha256:64d796e9af522162f7f2bf7a3c5531a0a550764c426782797bbeed809d0646c5",
-                "sha256:6cb4c4f57a20710cea277edf720d249d514e587f796b75785ad2c25e1c0fed26",
-                "sha256:6e1fe00ee85c768807f2a139b83469c1e52a9ffd58a6eb51aa7aeb524325ab18",
-                "sha256:6e859fa96605027bd50d8e966db1c4e1b03e7b3267abbc4b89ae658c99393c58",
-                "sha256:7a052bd9f53004f8993c624c452dfad8ec600f572dd0ed0445fbe64b22f5570e",
-                "sha256:81e53bd383c2c33de9d578bfcc243f559bd3801a0e57f2bcc9a943c790662e0c",
-                "sha256:83cf3077712be9f65c9aaa0b5bc47bc1a44789fd45053e2e3ecd59ff17c63fe9",
-                "sha256:8b20c4178ead9bc398be479428568ff31b6c296eb22e75776273781a6551973f",
-                "sha256:8d07fe2de0325d06e7e73281e9a9b5e259fbd7cbfbe398a0433cbb0082ad8fa7",
-                "sha256:a0ae3aa2e86a4613f2d4c49eb7da23da536e6ce80b2bfd60bbb2f55fc02b0b32",
-                "sha256:af2587ae11400157753115612d6c6ad255143efba791406ad8a0cbcccf2edcb3",
-                "sha256:b3db741beaa983d4cbf9087558620e7787106319f7e63a066990a70657dd6b35",
-                "sha256:be094460930087e50fd08297db9d7aadaed8408ad896baf758e9190c335632da",
-                "sha256:cb441ca461bf97d00877b607f132772644b623518b39ced54da433215adce691",
-                "sha256:ce20f5da141f8af26c123ebaa1b7771835ca6c161225ce728962a79054f528c3",
-                "sha256:d57ac32f8dc731fddeb6f5d1358b4ca5456e72594e664769f0a9163f13df2a31",
-                "sha256:dce3468bf1fc12374a1a732c9efd146ce034f91bb0482b602a9311cb6166a920",
-                "sha256:e12532c4d3f614678623da5d852f038ace1f01869b89f003ed6fe8c793f0c6a3",
-                "sha256:e74ce103b81c375c3853b436297952ef8d7863d801dcffb6728d01544e5191b5",
-                "sha256:f0394a3acfb8925db178f7728adb38c027ed7e303665b225906bfa8099dc1ce8",
-                "sha256:f522214f6749bc073262529c056f7dfd660f3b5ec4180c5354d985eb7219801e",
-                "sha256:fbf8c09fe9728168f8cc1b40c239eab10baf9c422c18be7f53213d70434dea43",
-                "sha256:fca8322e04b2dde722fcb0558682740eebd3bd239bea7a0d0febbc190e99dc15"
+                "sha256:047ef5ccd8860f6147b8ac6c45a4bc573d4e030267b45d9a1c47b55962ff0e6f",
+                "sha256:05a05771617bfa723ba4cef58d5b25ac028b0d68f28f403edebed5b8243b3a87",
+                "sha256:0ec54460475f0c42512895c99c63d90dd2d9cbd0c13491a184182e85074b04c5",
+                "sha256:107df519eb33d7f8e0d0d052128af2f25066c1a0f6b648fd1a9612ab66800b86",
+                "sha256:14ea8ff2d33c48f8e6c3c472111d893b9e356284d1482102da9678195e5a8eac",
+                "sha256:1745987ada1890b0e7978abdb22c133eca2e89ab98dc17939042240063e1ef21",
+                "sha256:1962dfee37b7fb17d3d4889bf84c4ea08b1c36707194c578f61e6e06d12ab90f",
+                "sha256:20bf65bcce65c538e68d5df27402b39341fabeecf01de7e0e72b9d9836c13c52",
+                "sha256:26146c59576dfe9c546c9f45397a7c7c4a90c25679492ff610a7500afc7d03a6",
+                "sha256:365b75938049ae31cf2176efd3d598213ddb9eb883fbc82086efa019a5f649df",
+                "sha256:4770eb3ba69ec5fa41c681a75e53e0e342ac24c1f9220d883458b5596888e43a",
+                "sha256:50e7569637e2e02253295527ff34666706dbb2bc5f6c61a5a7f44b9610c9bb09",
+                "sha256:5c2d19bfb33262bf987ef0062345efd0f54c4189c2d95159c72995457bf4a359",
+                "sha256:621f050e72cc7dfd9ad4594ff0abeaad954d6e4a2891545e8f1a53dcdfbef445",
+                "sha256:6d81de54e45f1d756785405c9d06cd17918c2eecc2d4262dc2d276ca612c2f61",
+                "sha256:6f95706da857e6e79b54c33c1214f5467aab10600aa508ddd1239d5df271986e",
+                "sha256:752ef2e8dbaa3c5d419f322e3632f00ba6b1c3230f65bc97c2ff5c5c6c08f441",
+                "sha256:7b2785dd2a0c044a36836857ac27310dc7a99166253551ee8f5408930958cc60",
+                "sha256:7f13644b15665f7322f9e0635129e0ef2098409484df67fcd225d954c5861559",
+                "sha256:8194896038753b46b08a0b0ae89a5d80c897fb601dd51e243ed5720f1f155d27",
+                "sha256:864d4f89f054819cb95e93100b7d251e4d114d1c60bc7576db07b046432af280",
+                "sha256:8b773c9974c272aae0fa7e95b576d98d17ee65f69d8644f9b6ffc90ee96b4d19",
+                "sha256:8f901be74f00a13bf375241a778455ee864c2c21c79154aad196b7a994e1144f",
+                "sha256:91d2b89bb0c302f89e753bea008936acfa4e18c156fb264fe41eb6bbb2bbcdeb",
+                "sha256:b0538b66f959771c56ff996d828081908a6a52a47c5548faed4a3d0a027a5368",
+                "sha256:b30e70f1594ee3c8902978fd71900d7312453922827c4ce0012fa6a8278d6df4",
+                "sha256:b71be98ef6e180217d1797185c75507060a57ab9cd835653e0112db16a710f0d",
+                "sha256:c6d00cb9da8d0cbfaba18cad046e94b06de6d4d0ffd9d4095a3ad1838af22528",
+                "sha256:d1f665e50592caf4cad3caed3ed86f93227bffe0680218ccbb293bd5a6734ca8",
+                "sha256:e6e2c8581c6620136b9530137954a8376efffd57fe19802182c7561b0ab48b48",
+                "sha256:e7a7667d928ba6ee361a3176e1bef6847c1062b37726b33505cc84136f657e0d",
+                "sha256:ec3985c883d6d217cf2013028afc6e3c82b8907192ba6195d6e49885bfc4b19d",
+                "sha256:ede13a472caa85a13abe5095e71676af985d7690eaa8461aeac5c74f6600b6c0",
+                "sha256:f24d4d6ec301688c59b0c4bb1c1c94c5d0bff4ecad33bb8f5d9efdfb8d8bc925",
+                "sha256:f2a42acc01568b9701665e85562bbff78ec3e21981c7d51d56717c22e5d3d58b",
+                "sha256:fbc076f79d830ae4c9d49926180a1140b49fa675d0f0d555b44c9a15b29f4c80"
             ],
             "index": "pypi",
-            "version": "==1.4.36"
-        },
-        "urllib3": {
-            "hashes": [
-                "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
-                "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
-            ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==1.26.9"
+            "version": "==1.4.39"
         },
         "werkzeug": {
             "hashes": [
-                "sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6",
-                "sha256:72a4b735692dd3135217911cbeaa1be5fa3f62bffb8745c5215420a03dc55255"
+                "sha256:4d7013ef96fd197d1cdeb03e066c6c5a491ccb44758a5b2b91137319383e5a5a",
+                "sha256:7e1db6a5ba6b9a8be061e47e900456355b8714c0f238b0313f53afce1a55a79a"
             ],
             "markers": "python_version >= '3.7'",
-            "version": "==2.1.2"
+            "version": "==2.2.1"
         },
         "zipp": {
             "hashes": [
-                "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
-                "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
+                "sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2",
+                "sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009"
             ],
             "markers": "python_version >= '3.7'",
-            "version": "==3.8.0"
+            "version": "==3.8.1"
         }
     },
     "develop": {}
diff --git a/config.example.json b/config.example.json
index 67ebe0dca970bdff1e529730ac25566cc5632077..e0a10de56f04ba184abc9cd749f1bc619717553c 100644
--- a/config.example.json
+++ b/config.example.json
@@ -1,14 +1,4 @@
 {
-	"OIDC": {
-		"client_id": "generator-grafiky",
-		"client_secret": "248f960e-7717-4a0e-9bfa-eb7cf1fd26ae",
-		"authorization_endpoint": "http://localhost:8080/auth/realms/master/protocol/openid-connect/auth",
-		"token_endpoint": "http://localhost:8080/auth/realms/master/protocol/openid-connect/token",
-		"userinfo_endpoint": "http://localhost:8080/auth/realms/master/protocol/openid-connect/userinfo",
-		"jwks_uri": "http://localhost:8080/auth/realms/master/protocol/openid-connect/certs",
-		"scope": "openid"
-	},
-	"SECRET_KEY": "Pusťte nás na ně",
-	"JWT_SECRET_KEY": "Energie a zkušenosti",
+	"OIDC_BASE_URL": "http://localhost:8080/auth/realms/master/",
 	"JWT_EXPIRES_AFTER": 604800
 }
diff --git a/docker-compose.yml b/docker-compose.yml
index 209d2a8cbbc0786e18223fe02334d53b4b15d338..bf1cdf1009b92ae43e855ed3eba3b295261a7699 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,24 +1,18 @@
 version: "3"
 
 services:
-  database:
-    image: "postgres:latest"
-
-    environment:
-      POSTGRES_DB: generator
-      POSTGRES_PASSWORD: generator
-      POSTGRES_USER: generator
-
-    expose:
-      - "5432"
-
-    restart: always
   web:
     build: "."
 
     environment:
       FLASK_APP: generator
-      DATABASE_URL: "postgresql://generator:generator@database/generator"
+      DATABASE_URL: "postgresql://username:password@host/database_name"
+      
+      SECRET_KEY: "Åìo«ÑÚ2ûÁn-Û?bV4«Û©ä´ó>°yÆvw7°Ôa"
+      JWT_SECRET_KEY: "¤2¯µ&ñðxÈF?a^µ#udbLxgЧ?ÅÏARA®D"
+      
+      OIDC_CLIENT_ID: generator
+      OIDC_CLIENT_SECRET: "a11a5557-d486-429c-8c8c-7afa0bf1b0be"
 
     ports:
       - "1337:1337"
diff --git a/env.example b/env.example
new file mode 100644
index 0000000000000000000000000000000000000000..1f9acee54525bdeef58c0e983b4efec4a798ab63
--- /dev/null
+++ b/env.example
@@ -0,0 +1,10 @@
+DATABASE_URL=postgresql://username:password@localhost/database_name
+
+SECRET_KEY=Åìo«ÑÚ2ûÁn-Û?bV4«Û©ä´ó>°yÆvw7°Ôa
+
+JWT_SECRET_KEY=¤2¯µ&ñðxÈF?a^µ#udbLxgЧ?ÅÏARA®D
+
+OIDC_CLIENT_ID=generator
+OIDC_CLIENT_SECRET=a11a5557-d486-429c-8c8c-7afa0bf1b0be
+
+FLASK_APP=generator
diff --git a/generator/__init__.py b/generator/__init__.py
index 5ea1f656fda624da83c875dcce0cb7ef88a573bd..5e8c4ad18ea9b8fcbf29f82db034b4ddb9af3c35 100644
--- a/generator/__init__.py
+++ b/generator/__init__.py
@@ -4,7 +4,6 @@ import os
 import typing
 
 import flask
-import flask_babel
 import sqlalchemy
 import sqlalchemy.orm
 
@@ -39,6 +38,9 @@ def create_app() -> flask.Flask:
 
 		app.logger.debug("Loading config file")
 
+		app.config["SECRET_KEY"] = os.environ.get("SECRET_KEY", "dev_secret_key")
+		app.config["JWT_SECRET_KEY"] = os.environ.get("JWT_SECRET_KEY", "dev_secret_key")
+
 		with open(
 			os.environ.get(
 				"CONFIG_LOCATION",
@@ -69,10 +71,6 @@ def create_app() -> flask.Flask:
 			)
 		)
 
-		app.logger.debug("Setting up extensions")
-
-		babel = flask_babel.Babel(app)
-
 		@app.before_request
 		def before_request() -> None:
 			"""TODO: doc"""
diff --git a/generator/authentication/__init__.py b/generator/authentication/__init__.py
index bef728c16287fc42f1a0a61cb391eeefc83cb7e7..115c26dcfe3c6b1fc049443ef10a406d462efc35 100644
--- a/generator/authentication/__init__.py
+++ b/generator/authentication/__init__.py
@@ -17,32 +17,32 @@ def authenticate_via_jwt(
 
 	@functools.wraps(func)
 	def decorator(*args, **kwargs) -> typing.Any:
-		#if "token" not in flask.request.cookies:
-			#return flask.redirect(
-				#flask.url_for("oidc.login")
-			#)
-
-		#try:
-			#claims = authlib.jose.jwt.decode(
-				#flask.request.cookies["token"],
-				#flask.current_app.config["JWT_SECRET_KEY"]
-			#)
-		#except authlib.jose.JoseError as exception:
-			#raise werkzeug.exceptions.BadRequest from exception
-
-		#try:
-			#claims.validate()
-		#except authlib.jose.JoseError as exception:
-			#flask.current_app.logger.debug(
-				#"Claim validation failed: %s",
-				#exception
-			#)
-
-			#return flask.redirect(
-				#flask.url_for("oidc.login")
-			#)
-
-		flask.g.user_id = "1"
+		if "token" not in flask.request.cookies:
+			return flask.redirect(
+				flask.url_for("oidc.login")
+			)
+
+		try:
+			claims = authlib.jose.jwt.decode(
+				flask.request.cookies["token"],
+				flask.current_app.config["JWT_SECRET_KEY"]
+			)
+		except authlib.jose.JoseError as exception:
+			raise werkzeug.exceptions.BadRequest from exception
+
+		try:
+			claims.validate()
+		except authlib.jose.JoseError as exception:
+			flask.current_app.logger.debug(
+				"Claim validation failed: %s",
+				exception
+			)
+
+			return flask.redirect(
+				flask.url_for("oidc.login")
+			)
+
+		flask.g.user_id = claims["sub"]
 
 		return func(*args, **kwargs)
 	return decorator
diff --git a/generator/static/js/concept.js b/generator/static/js/concept.js
index a06f8c2a83cea01bedd93a198a2fb318ad458cdd..0db61ea48fbfce65a96473d7c11a3ef7924e04e0 100644
--- a/generator/static/js/concept.js
+++ b/generator/static/js/concept.js
@@ -68,7 +68,7 @@ $("#concept-selection").on(
 			currentConcept = null;
 			$("#concept-name").val("");
 			
-			// TODO
+			window.location.reload(true);
 			
 			return;
 		}
@@ -82,7 +82,7 @@ $("#concept-selection").on(
 		
 		const canvasData = JSON.parse(unescapeHTML(element.dataset.json));
 		
-		const templateName = canvasData.templateName;
+		templateName = canvasData.templateName;
 		template = new templateTypes[templateName]("graphicsCanvas");
 		
 		template.redrawing = true;
@@ -423,7 +423,7 @@ async function getCanvasData() {
 			$("#concept-name").val() : null
 		),
 		templateName: templateName,
-		templateHumanName: $("#template-selection").select2("data")[0].element.innerHTML,
+		templateHumanName: $("#template-selection").select2("data")[0].text,
 		primaryText: $("#primary-text").val(),
 		secondaryText: $("#secondary-text").val(),
 		terciaryText: $("#terciary-text").val(),
diff --git a/generator/templates/avatar.html b/generator/templates/avatar.html
index 9c2192077fabee1c3c99bb906bad3a923a7f1462..52365af779fad5644ff3b3e0fc0a921f8486316d 100644
--- a/generator/templates/avatar.html
+++ b/generator/templates/avatar.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>{{ gettext("Generátor profilových obrázků") }}</title>
+		<title>Generátor profilových obrázků</title>
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width, initial-scale=1">
 		<script
@@ -42,11 +42,11 @@
 			<h1>
 				<img
 					src="{{ url_for('static', filename='images/badges/default-light.png') }}"
-					alt="{{ gettext('Pirátské logo') }}"
+					alt="Pirátské logo"
 					height="40"
 					width="40"
 				>
-				{{ gettext('Generátor profilových obrázků') }}
+				Generátor profilových obrázků
 			</h1>
 		</header>
 
@@ -58,28 +58,28 @@
 					height="2000"
 				></canvas>
 				
-				<button id="download">{{ gettext('Stáhnout') }}</button>
+				<button id="download">Stáhnout</button>
 				
 				<br>
 				
 				<small>
-					{{ gettext('Generátor s ♥ vytvořil ') }}<a href="https://toho.neocities.org" target="_blank" rel="nofollow">{{ gettext('Tomáš Valenta') }}</a>
-					{{ gettext(' pod svobodnou licencí ') }}<a href="https://www.gnu.org/licenses/agpl-3.0.en.html" target="_blank">{{ gettext('AGPLv3') }}</a>{{ gettext('.') }}
+					Generátor s ♥ vytvořil <a href="https://toho.neocities.org" target="_blank" rel="nofollow">Tomáš Valenta</a>
+					pod svobodnou licencí <a href="https://www.gnu.org/licenses/agpl-3.0.en.html" target="_blank">AGPLv3</a>.
 				</small>
 			</section>
 
 			<section class="controls-primary">
-				<h2>{{ gettext('Základní nastavení') }}</h1>
+				<h2>Základní nastavení</h1>
 				
-				<h2>{{ gettext('Tvůj obrázek') }}</h2>
+				<h2>Tvůj obrázek</h2>
 				
 				<section id="image-wrapper">
 					<input type="file" accept="image/*" id="image" name="image">
 					
-					<button id="reset-image">{{ gettext('Reset') }}</button>
+					<button id="reset-image">Reset</button>
 				</section>
 				
-				<h2>{{ gettext('Ikona') }}</h2>
+				<h2>Ikona</h2>
 
 				<section id="icon-selection-wrapper">
 					<select id="icon-selection">
@@ -89,7 +89,7 @@
 							data-icon-light-source="{{ url_for('static', filename='images/badges/default-light.png') }}"
 							data-icon-height-multiplier="1"
 							data-icon-offset-bottom-multiplier="1"
-						>{{ gettext('Základní ikona') }}</option>
+						>Základní ikona</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/cz_ua-light.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/cz_ua-dark.png') }}"
@@ -98,7 +98,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ukrajina-cz', _external=true) }}"
 							value="ukrajina-cz"
-						>{{ gettext('Česko + Ukrajina') }}</option>
+						>Česko + Ukrajina</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/eu_ua-light.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/eu_ua-dark.png') }}"
@@ -107,7 +107,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ukrajina-eu', _external=true) }}"
 							value="ukrajina-eu"
-						>{{ gettext('EU + Ukrajina') }}</option>
+						>EU + Ukrajina</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Benesov-1-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Benesov-1-dark.png') }}"
@@ -116,7 +116,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='benesov-1', _external=true) }}"
 							value="benesov-1"
-						>{{ gettext('Benešov 1') }}</option>
+						>Benešov 1</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Benesov-2-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Benesov-2-dark.png') }}"
@@ -125,7 +125,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='benesov-2', _external=true) }}"
 							value="benesov-2"
-						>{{ gettext('Benešov 2') }}</option>
+						>Benešov 2</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Benesov-3-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Benesov-3-dark.png') }}"
@@ -134,7 +134,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='benesov-3', _external=true) }}"
 							value="benesov-3"
-						>{{ gettext('Benešov 3') }}</option>
+						>Benešov 3</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Beroun-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Beroun-dark.png') }}"
@@ -143,7 +143,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='beroun', _external=true) }}"
 							value="beroun"
-						>{{ gettext('Beroun') }}</option>
+						>Beroun</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Bilina-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Bilina-dark.png') }}"
@@ -152,7 +152,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='bilina', _external=true) }}"
 							value="bilina"
-						>{{ gettext('Bílina') }}</option>
+						>Bílina</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Bohumin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Bohumin-dark.png') }}"
@@ -161,7 +161,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='bohumin', _external=true) }}"
 							value="bohumin"
-						>{{ gettext('Bohumín') }}</option>
+						>Bohumín</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Brandys-nad-labem-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Brandys-nad-labem-dark.png') }}"
@@ -170,7 +170,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='brandys-nad-labem', _external=true) }}"
 							value="brandys-nad-labem"
-						>{{ gettext('Brandýs nad Labem') }}</option>
+						>Brandýs nad Labem</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Caslav-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Caslav-dark.png') }}"
@@ -179,7 +179,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='caslav', _external=true) }}"
 							value="caslav"
-						>{{ gettext('Čáslav') }}</option>
+						>Čáslav</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Ceska-trebova-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Ceska-trebova-dark.png') }}"
@@ -188,7 +188,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ceska-trebova', _external=true) }}"
 							value="ceska-trebova"
-						>{{ gettext('Česká Třebová') }}</option>
+						>Česká Třebová</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Ceske-budejovice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Ceske-budejovice-dark.png') }}"
@@ -197,7 +197,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ceske-budejovice', _external=true) }}"
 							value="ceske-budejovice"
-						>{{ gettext('České Budějovice') }}</option>
+						>České Budějovice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Cheb-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Cheb-dark.png') }}"
@@ -206,7 +206,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='cheb', _external=true) }}"
 							value="cheb"
-						>{{ gettext('Cheb') }}</option>
+						>Cheb</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Chudova-plana-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Chudova-plana-dark.png') }}"
@@ -215,7 +215,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='chudova-plana', _external=true) }}"
 							value="chudova-plana"
-						>{{ gettext('Chudová Planá') }}</option>
+						>Chudová Planá</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Chomutov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Chomutov-dark.png') }}"
@@ -224,7 +224,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='chomutov', _external=true) }}"
 							value="chomutov"
-						>{{ gettext('Chomutov') }}</option>
+						>Chomutov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Chrast-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Chrast-dark.png') }}"
@@ -233,7 +233,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='chrast', _external=true) }}"
 							value="chrast"
-						>{{ gettext('Chrást') }}</option>
+						>Chrást</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Chrudim-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Chrudim-dark.png') }}"
@@ -242,7 +242,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='chrudim', _external=true) }}"
 							value="chrudim"
-						>{{ gettext('Chrudim') }}</option>
+						>Chrudim</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Cesky-tesin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Cesky-tesin-dark.png') }}"
@@ -251,7 +251,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='cesky-tesin', _external=true) }}"
 							value="cesky-tesin"
-						>{{ gettext('Český Těšín') }}</option>
+						>Český Těšín</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Decin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Decin-dark.png') }}"
@@ -260,7 +260,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='decin', _external=true) }}"
 							value="decin"
-						>{{ gettext('Děčín') }}</option>
+						>Děčín</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Domazlice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Domazlice-dark.png') }}"
@@ -269,7 +269,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='domazlice', _external=true) }}"
 							value="domazlice"
-						>{{ gettext('Domažlice') }}</option>
+						>Domažlice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Frydek-mistek-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Frydek-mistek-dark.png') }}"
@@ -278,7 +278,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='frydek-mistek', _external=true) }}"
 							value="frydek-mistek"
-						>{{ gettext('Frýdek-Místek') }}</option>
+						>Frýdek-Místek</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Havirov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Havirov-dark.png') }}"
@@ -287,7 +287,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='havirov', _external=true) }}"
 							value="havirov"
-						>{{ gettext('Havířov') }}</option>
+						>Havířov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Havlickuv-brod-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Havlickuv-brod-dark.png') }}"
@@ -296,7 +296,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='havlickuv-brod', _external=true) }}"
 							value="havlickuv-brod"
-						>{{ gettext('Havlíčkův Brod') }}</option>
+						>Havlíčkův Brod</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Hermanuv-mestec-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Hermanuv-mestec-dark.png') }}"
@@ -305,7 +305,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='hermanuv-mestec', _external=true) }}"
 							value="hermanuv-mestec"
-						>{{ gettext('Heřmanův Městec') }}</option>
+						>Heřmanův Městec</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Holesov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Holesov-dark.png') }}"
@@ -314,7 +314,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='holesov', _external=true) }}"
 							value="holesov"
-						>{{ gettext('Holešov') }}</option>
+						>Holešov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Holysov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Holysov-dark.png') }}"
@@ -323,7 +323,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='holysov', _external=true) }}"
 							value="holysov"
-						>{{ gettext('Holyšov') }}</option>
+						>Holyšov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Hradec-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Hradec-dark.png') }}"
@@ -332,7 +332,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='hradec', _external=true) }}"
 							value="hradec"
-						>{{ gettext('Hradec') }}</option>
+						>Hradec</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Jesenice-jilove-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Jesenice-jilove-dark.png') }}"
@@ -341,7 +341,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='jesenice-jilove', _external=true) }}"
 							value="jesenice-jilove"
-						>{{ gettext('Jesenice - Jílové') }}</option>
+						>Jesenice - Jílové</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Jihlava-dark.png') }}"
@@ -352,7 +352,7 @@
 							data-special-number-function="jihlava"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='jihlava', _external=true) }}"
 							value="jihlava"
-						>{{ gettext('Jihlava') }}</option>
+						>Jihlava</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Jindrichuv-hradec-dark.png') }}"
@@ -362,7 +362,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='jindrichuv-hradec', _external=true) }}"
 							value="jindrichuv-hradec"
-						>{{ gettext('Jindřichův Hradec') }}</option>
+						>Jindřichův Hradec</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Kadan-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Kadan-dark.png') }}"
@@ -371,7 +371,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kadan', _external=true) }}"
 							value="kadan"
-						>{{ gettext('Kadaň') }}</option>
+						>Kadaň</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Karlovy-vary-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Karlovy-vary-dark.png') }}"
@@ -380,7 +380,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='karlovy-vary', _external=true) }}"
 							value="karlovy-vary"
-						>{{ gettext('Karlovy Vary') }}</option>
+						>Karlovy Vary</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Karvina-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Karvina-dark.png') }}"
@@ -389,7 +389,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='karvina', _external=true) }}"
 							value="karvina"
-						>{{ gettext('Karviná') }}</option>
+						>Karviná</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Kutna-hora-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Kutna-hora-dark.png') }}"
@@ -398,7 +398,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kutna-hora', _external=true) }}"
 							value="kutna-hora"
-						>{{ gettext('Kutná Hora') }}</option>
+						>Kutná Hora</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/logos/kladno.png') }}"
@@ -409,7 +409,7 @@
 							data-special-number-function="kladno"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kladno', _external=true) }}"
 							value="kladno"
-						>{{ gettext('Kladno') }}</option>
+						>Kladno</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Klatovy-dark.png') }}"
@@ -419,7 +419,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='klatovy', _external=true) }}"
 							value="klatovy"
-						>{{ gettext('Klatovy') }}</option>
+						>Klatovy</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Kolin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Kolin-dark.png') }}"
@@ -428,7 +428,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kolin', _external=true) }}"
 							value="kolin"
-						>{{ gettext('Kolín') }}</option>
+						>Kolín</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Kralupy-nad-vltavou-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Kralupy-nad-vltavou-dark.png') }}"
@@ -437,7 +437,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kralupy-nad-vltavou', _external=true) }}"
 							value="kralupy-nad-vltavou"
-						>{{ gettext('Kralupy nad Vltavou') }}</option>
+						>Kralupy nad Vltavou</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Kutna-hora-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Kutna-hora-dark.png') }}"
@@ -446,7 +446,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='kutna-hora', _external=true) }}"
 							value="kutna-hora"
-						>{{ gettext('Kutná Hora') }}</option>
+						>Kutná Hora</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Litomerice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Litomerice-dark.png') }}"
@@ -455,7 +455,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='litomerice', _external=true) }}"
 							value="litomerice"
-						>{{ gettext('Litoměřice') }}</option>
+						>Litoměřice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Loket-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Loket-dark.png') }}"
@@ -464,7 +464,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='loket', _external=true) }}"
 							value="loket"
-						>{{ gettext('Loket') }}</option>
+						>Loket</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Lysa-nad-labem-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Lysa-nad-labem-dark.png') }}"
@@ -473,7 +473,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='lysa-nad-labem', _external=true) }}"
 							value="lysa-nad-labem"
-						>{{ gettext('Lysá nad Labem') }}</option>
+						>Lysá nad Labem</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Louny-white-on-purple.png') }}"
@@ -484,7 +484,7 @@
 							data-special-number-function="louny"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='louny-bila-na-fialove', _external=true) }}"
 							value="louny-bila-na-fialove"
-						>{{ gettext('Louny Spolu - bílá na fialové') }}</option>
+						>Louny Spolu - bílá na fialové</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Louny-gold-on-purple.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Louny-gold-on-purple.png') }}"
@@ -494,7 +494,7 @@
 							data-special-number-function="louny"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='louny-zlata-na-fialove', _external=true) }}"
 							value="louny-zlata-na-fialove"
-						>{{ gettext('Louny Spolu - zlatá na fialové') }}</option>
+						>Louny Spolu - zlatá na fialové</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Louny-purple-on-white.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Louny-purple-on-white.png') }}"
@@ -504,7 +504,7 @@
 							data-special-number-function="louny"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='louny-fialova-na-bile', _external=true) }}"
 							value="louny-fialova-na-bile"
-						>{{ gettext('Louny Spolu - fialová na bílé') }}</option>
+						>Louny Spolu - fialová na bílé</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Louny-purple-on-gold.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Louny-purple-on-gold.png') }}"
@@ -514,7 +514,7 @@
 							data-special-number-function="louny"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='louny-fialova-na-zlate', _external=true) }}"
 							value="louny-fialova-na-zlate"
-						>{{ gettext('Louny Spolu - fialová na zlaté') }}</option>
+						>Louny Spolu - fialová na zlaté</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Marianske-lazne-dark.png') }}"
@@ -524,7 +524,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='marianske-lazne', _external=true) }}"
 							value="marianske-lazne"
-						>{{ gettext('Mariánské Lázně') }}</option>
+						>Mariánské Lázně</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Moravska-trebova-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Moravska-trebova-dark.png') }}"
@@ -533,7 +533,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='moravska-trebova', _external=true) }}"
 							value="moravska-trebova"
-						>{{ gettext('Moravská Třebová') }}</option>
+						>Moravská Třebová</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Melnik-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Melnik-dark.png') }}"
@@ -542,7 +542,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='melnik', _external=true) }}"
 							value="melnik"
-						>{{ gettext('Mělník') }}</option>
+						>Mělník</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Milovice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Milovice-dark.png') }}"
@@ -551,7 +551,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='milovice', _external=true) }}"
 							value="milovice"
-						>{{ gettext('Milovice') }}</option>
+						>Milovice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Mlada-boleslav-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Mlada-boleslav-dark.png') }}"
@@ -560,7 +560,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='mlada-boleslav', _external=true) }}"
 							value="mlada-boleslav"
-						>{{ gettext('Mladá Boleslav') }}</option>
+						>Mladá Boleslav</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Mnisecko-a-dolni-berounka-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Mnisecko-a-dolni-berounka-dark.png') }}"
@@ -569,7 +569,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='mnisecko-a-dolni-berounka', _external=true) }}"
 							value="mnisecko-a-dolni-berounka"
-						>{{ gettext('Mnisecko a Dolní Berounka') }}</option>
+						>Mnisecko a Dolní Berounka</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Most-dark.png') }}"
@@ -580,7 +580,7 @@
 							data-special-number-function="most"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='most', _external=true) }}"
 							value="most"
-						>{{ gettext('Most') }}</option>
+						>Most</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Napajedla-dark.png') }}"
@@ -590,7 +590,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='napajedla', _external=true) }}"
 							value="napajedla"
-						>{{ gettext('Napajedla') }}</option>
+						>Napajedla</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Neratovice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Neratovice-dark.png') }}"
@@ -599,7 +599,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='neratovice', _external=true) }}"
 							value="neratovice"
-						>{{ gettext('Neratovice') }}</option>
+						>Neratovice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Nova-role-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Nova-role-dark.png') }}"
@@ -608,7 +608,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='nova-role', _external=true) }}"
 							value="nova-role"
-						>{{ gettext('Nová Role') }}</option>
+						>Nová Role</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Nymburk-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Nymburk-dark.png') }}"
@@ -617,7 +617,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='nymburk', _external=true) }}"
 							value="nymburk"
-						>{{ gettext('Nymburk') }}</option>
+						>Nymburk</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Olomouc-light.png') }}"
@@ -628,7 +628,7 @@
 							data-special-number-function="olomouc"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='olomouc', _external=true) }}"
 							value="olomouc"
-						>{{ gettext('Olomouc') }}</option>
+						>Olomouc</option>
 						
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Opava-dark.png') }}"
@@ -638,7 +638,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='opava', _external=true) }}"
 							value="opava"
-						>{{ gettext('Opava') }}</option>
+						>Opava</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Orlova-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Orlova-dark.png') }}"
@@ -647,7 +647,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='orlova', _external=true) }}"
 							value="orlova"
-						>{{ gettext('Orlová') }}</option>
+						>Orlová</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Ostrava-Poruba-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Ostrava-Poruba-dark.png') }}"
@@ -656,7 +656,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ostrava-poruba', _external=true) }}"
 							value="ostrava-poruba"
-						>{{ gettext('Ostrava-Poruba') }}</option>
+						>Ostrava-Poruba</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Ostrava-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Ostrava-dark.png') }}"
@@ -665,7 +665,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ostrava', _external=true) }}"
 							value="ostrava"
-						>{{ gettext('Ostrava') }}</option>
+						>Ostrava</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Ostrava-jih-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Ostrava-jih-dark.png') }}"
@@ -674,7 +674,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='ostrava-jih', _external=true) }}"
 							value="ostrava-jih"
-						>{{ gettext('Ostrava-Jih') }}</option>
+						>Ostrava-Jih</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Otrokovice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Otrokovice-dark.png') }}"
@@ -683,7 +683,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='otrokovice', _external=true) }}"
 							value="otrokovice"
-						>{{ gettext('Otrokovice') }}</option>
+						>Otrokovice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Pardubice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Pardubice-dark.png') }}"
@@ -692,7 +692,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='pardubice', _external=true) }}"
 							value="pardubice"
-						>{{ gettext('Pardubice') }}</option>
+						>Pardubice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Pisek-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Pisek-dark.png') }}"
@@ -701,7 +701,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='pisek', _external=true) }}"
 							value="pisek"
-						>{{ gettext('Písek') }}</option>
+						>Písek</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Plzen-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Plzen-dark.png') }}"
@@ -710,7 +710,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='plzen', _external=true) }}"
 							value="plzen"
-						>{{ gettext('Plzeň') }}</option>
+						>Plzeň</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Podebrady-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Podebrady-dark.png') }}"
@@ -719,7 +719,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='podebrady', _external=true) }}"
 							value="podebrady"
-						>{{ gettext('Poděbrady') }}</option>
+						>Poděbrady</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Policka-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Policka-dark.png') }}"
@@ -728,7 +728,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='policka', _external=true) }}"
 							value="policka"
-						>{{ gettext('Polička') }}</option>
+						>Polička</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Poruba-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Poruba-dark.png') }}"
@@ -737,7 +737,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='poruba', _external=true) }}"
 							value="poruba"
-						>{{ gettext('Poruba') }}</option>
+						>Poruba</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Prachatice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Prachatice-dark.png') }}"
@@ -746,7 +746,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='prachatice', _external=true) }}"
 							value="prachatice"
-						>{{ gettext('Prachatice') }}</option>
+						>Prachatice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-1-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-1-dark.png') }}"
@@ -755,7 +755,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-1', _external=true) }}"
 							value="praha-1"
-						>{{ gettext('Praha 1') }}</option>
+						>Praha 1</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-2-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-2-dark.png') }}"
@@ -764,7 +764,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-2', _external=true) }}"
 							value="praha-2"
-						>{{ gettext('Praha 2') }}</option>
+						>Praha 2</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-3-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-3-dark.png') }}"
@@ -773,7 +773,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-3', _external=true) }}"
 							value="praha-3"
-						>{{ gettext('Praha 3') }}</option>
+						>Praha 3</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-4-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-4-dark.png') }}"
@@ -782,7 +782,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-4', _external=true) }}"
 							value="praha-4"
-						>{{ gettext('Praha 4') }}</option>
+						>Praha 4</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-5-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-5-dark.png') }}"
@@ -791,7 +791,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-5', _external=true) }}"
 							value="praha-5"
-						>{{ gettext('Praha 5') }}</option>
+						>Praha 5</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-6-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-6-dark.png') }}"
@@ -800,7 +800,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-6', _external=true) }}"
 							value="praha-6"
-						>{{ gettext('Praha 6') }}</option>
+						>Praha 6</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-7-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-7-dark.png') }}"
@@ -809,7 +809,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-7', _external=true) }}"
 							value="praha-7"
-						>{{ gettext('Praha 7') }}</option>
+						>Praha 7</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-8-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-8-dark.png') }}"
@@ -818,7 +818,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-8', _external=true) }}"
 							value="praha-8"
-						>{{ gettext('Praha 8') }}</option>
+						>Praha 8</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-9-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-9-dark.png') }}"
@@ -827,7 +827,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-9', _external=true) }}"
 							value="praha-9"
-						>{{ gettext('Praha 9') }}</option>
+						>Praha 9</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-10-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-10-dark.png') }}"
@@ -836,7 +836,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-10', _external=true) }}"
 							value="praha-10"
-						>{{ gettext('Praha 10') }}</option>
+						>Praha 10</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-11-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-11-dark.png') }}"
@@ -845,7 +845,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-11', _external=true) }}"
 							value="praha-11"
-						>{{ gettext('Praha 11') }}</option>
+						>Praha 11</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-12-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-12-dark.png') }}"
@@ -854,7 +854,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-12', _external=true) }}"
 							value="praha-12"
-						>{{ gettext('Praha 12') }}</option>
+						>Praha 12</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-13-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-13-dark.png') }}"
@@ -863,7 +863,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-13', _external=true) }}"
 							value="praha-13"
-						>{{ gettext('Praha 13') }}</option>
+						>Praha 13</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-14-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-14-dark.png') }}"
@@ -872,7 +872,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-14', _external=true) }}"
 							value="praha-14"
-						>{{ gettext('Praha 14') }}</option>
+						>Praha 14</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-15-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-15-dark.png') }}"
@@ -881,7 +881,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-15', _external=true) }}"
 							value="praha-15"
-						>{{ gettext('Praha 15') }}</option>
+						>Praha 15</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-18-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-18-dark.png') }}"
@@ -890,7 +890,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-18', _external=true) }}"
 							value="praha-18"
-						>{{ gettext('Praha 18') }}</option>
+						>Praha 18</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Praha-21-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Praha-21-dark.png') }}"
@@ -899,7 +899,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='praha-21', _external=true) }}"
 							value="praha-21"
-						>{{ gettext('Praha 21') }}</option>
+						>Praha 21</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Prerov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Prerov-dark.png') }}"
@@ -908,7 +908,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='prerov', _external=true) }}"
 							value="prerov"
-						>{{ gettext('Přerov') }}</option>
+						>Přerov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Pribor-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Pribor-dark.png') }}"
@@ -917,7 +917,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='pribor', _external=true) }}"
 							value="pribor"
-						>{{ gettext('Příbor') }}</option>
+						>Příbor</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Pribram-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Pribram-dark.png') }}"
@@ -926,7 +926,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='pribram', _external=true) }}"
 							value="pribram"
-						>{{ gettext('Příbram') }}</option>
+						>Příbram</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Prostejov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Prostejov-dark.png') }}"
@@ -935,7 +935,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='prostejov', _external=true) }}"
 							value="prostejov"
-						>{{ gettext('Prostějov') }}</option>
+						>Prostějov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Rotava-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Rotava-dark.png') }}"
@@ -944,7 +944,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='rotava', _external=true) }}"
 							value="rotava"
-						>{{ gettext('Rotava') }}</option>
+						>Rotava</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Roudnice-nad-labem-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Roudnice-nad-labem-dark.png') }}"
@@ -953,7 +953,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='roudnice-nad-labem', _external=true) }}"
 							value="roudnice-nad-labem"
-						>{{ gettext('Roudnice nad Labem') }}</option>
+						>Roudnice nad Labem</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Roznov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Roznov-dark.png') }}"
@@ -962,7 +962,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='roznov', _external=true) }}"
 							value="roznov"
-						>{{ gettext('Rožnov') }}</option>
+						>Rožnov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Rudoltice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Rudoltice-dark.png') }}"
@@ -971,7 +971,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='rudoltice', _external=true) }}"
 							value="rudoltice"
-						>{{ gettext('Rudoltice') }}</option>
+						>Rudoltice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Sobeslav-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Sobeslav-dark.png') }}"
@@ -980,7 +980,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='sobeslav', _external=true) }}"
 							value="sobeslav"
-						>{{ gettext('Soběslav') }}</option>
+						>Soběslav</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Sokolov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Sokolov-dark.png') }}"
@@ -989,7 +989,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='sokolov', _external=true) }}"
 							value="sokolov"
-						>{{ gettext('Sokolov') }}</option>
+						>Sokolov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Strakonice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Strakonice-dark.png') }}"
@@ -998,7 +998,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='strakonice', _external=true) }}"
 							value="strakonice"
-						>{{ gettext('Strakonice') }}</option>
+						>Strakonice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Susice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Susice-dark.png') }}"
@@ -1007,7 +1007,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='susice', _external=true) }}"
 							value="susice"
-						>{{ gettext('Sušice') }}</option>
+						>Sušice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Sumperk-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Sumperk-dark.png') }}"
@@ -1016,7 +1016,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='sumperk', _external=true) }}"
 							value="sumperk"
-						>{{ gettext('Šumperk') }}</option>
+						>Šumperk</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Svitavy-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Svitavy-dark.png') }}"
@@ -1025,7 +1025,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='svitavy', _external=true) }}"
 							value="svitavy"
-						>{{ gettext('Svitavy') }}</option>
+						>Svitavy</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Tachov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Tachov-dark.png') }}"
@@ -1034,7 +1034,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='tachov', _external=true) }}"
 							value="tachov"
-						>{{ gettext('Tachov') }}</option>
+						>Tachov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Tabor-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Tabor-dark.png') }}"
@@ -1043,7 +1043,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='tabor', _external=true) }}"
 							value="tabor"
-						>{{ gettext('Tábor') }}</option>
+						>Tábor</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Telc-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Telc-dark.png') }}"
@@ -1052,7 +1052,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='telc', _external=true) }}"
 							value="telc"
-						>{{ gettext('Telč') }}</option>
+						>Telč</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Teplice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Teplice-dark.png') }}"
@@ -1061,7 +1061,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='teplice', _external=true) }}"
 							value="teplice"
-						>{{ gettext('Teplice') }}</option>
+						>Teplice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Terezin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Terezin-dark.png') }}"
@@ -1070,7 +1070,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='terezin', _external=true) }}"
 							value="terezin"
-						>{{ gettext('Terezín') }}</option>
+						>Terezín</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Trutnov-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Trutnov-dark.png') }}"
@@ -1079,7 +1079,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='trutnov', _external=true) }}"
 							value="trutnov"
-						>{{ gettext('Trutnov') }}</option>
+						>Trutnov</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Trebic-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Trebic-dark.png') }}"
@@ -1088,7 +1088,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='trebic', _external=true) }}"
 							value="trebic"
-						>{{ gettext('Třebíč') }}</option>
+						>Třebíč</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Tyn-nad-vltavou-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Tyn-nad-vltavou-dark.png') }}"
@@ -1097,7 +1097,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='tyn-nad-vltavou', _external=true) }}"
 							value="tyn-nad-vltavou"
-						>{{ gettext('Týn nad Vltavou') }}</option>
+						>Týn nad Vltavou</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Uherske-hradiste-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Uherske-hradiste-dark.png') }}"
@@ -1106,7 +1106,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='uherske-hradiste', _external=true) }}"
 							value="uherske-hradiste"
-						>{{ gettext('Uherské Hradiště') }}</option>
+						>Uherské Hradiště</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Usti-nad-labem-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Usti-nad-labem-dark.png') }}"
@@ -1115,7 +1115,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='usti-nad-labem', _external=true) }}"
 							value="usti-nad-labem"
-						>{{ gettext('Ustí nad Labem') }}</option>
+						>Ustí nad Labem</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Valec-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Valec-dark.png') }}"
@@ -1124,7 +1124,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='valec', _external=true) }}"
 							value="valec"
-						>{{ gettext('Valeč') }}</option>
+						>Valeč</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Valmez-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Valmez-dark.png') }}"
@@ -1133,7 +1133,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='valmez', _external=true) }}"
 							value="valmez"
-						>{{ gettext('Valašské Meziříčí') }}</option>
+						>Valašské Meziříčí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Vejprtice-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Vejprtice-dark.png') }}"
@@ -1142,7 +1142,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='vejprtice', _external=true) }}"
 							value="vejprtice"
-						>{{ gettext('Vejprtice') }}</option>
+						>Vejprtice</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Volary-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Volary-dark.png') }}"
@@ -1151,7 +1151,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='volary', _external=true) }}"
 							value="volary"
-						>{{ gettext('Volary') }}</option>
+						>Volary</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Zatec-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Zatec-dark.png') }}"
@@ -1160,7 +1160,7 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='zatec', _external=true) }}"
 							value="zatec"
-						>{{ gettext('Žatec') }}</option>
+						>Žatec</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/badges/Zlin-dark.png') }}"
 							data-icon-dark-source="{{ url_for('static', filename='images/badges/Zlin-dark.png') }}"
@@ -1169,21 +1169,21 @@
 							data-icon-offset-bottom-multiplier="1"
 							data-url="{{ url_for('generator.view_avatar_generator_with_localization', localization='zlin', _external=true) }}"
 							value="zlin"
-						>{{ gettext('Zlín') }}</option>
+						>Zlín</option>
 					</select>
 					
 					<section id="icon-permalink-wrapper" style="display:none">
-						<b>{{ gettext('Permanentní odkaz na nastavenou ikonu:') }}</b>
+						<b>Permanentní odkaz na nastavenou ikonu:</b>
 						<a id="icon-permalink" href="#"></a>
 					</section>
 				</section>
 				
 				<section>
-					<h2>{{ gettext('Lokalizace') }}</h2>
+					<h2>Lokalizace</h2>
 
 					<section id="localization-selection-wrapper">
 						<select id="localization-selection">
-							<option>{{ gettext('Žádná lokalizace') }}</option>
+							<option>Žádná lokalizace</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/locations/Benesov-1-dark.png') }}"
 								data-image-location-source="{{ url_for('static', filename='images/locations/Benesov-1.png') }}"
@@ -1693,17 +1693,17 @@
 					
 					<section id="own-icon-wrapper">
 						<label for="own-icon-image">
-							<h3>{{ gettext('Vlastní ikona') }}</h3>
+							<h3>Vlastní ikona</h3>
 						</label>
 						
 						<input type="file" accept="image/*" id="own-icon-image" name="own-icon-image">
 						
-						<button id="reset-own-icon">{{ gettext('Reset') }}</button>
+						<button id="reset-own-icon">Reset</button>
 					</section>
 				</section>
 				
 				<section id="text-wrapper">
-					<h2>{{ gettext('Text') }}</h2>
+					<h2>Text</h2>
 					
 					<textarea id="text" placeholder="Text vedle loga"></textarea>
 					
@@ -1715,36 +1715,36 @@
 				</section>
 				
 				<section id="gradient-wrapper">
-					<h2>{{ gettext('Stín na pozadí') }}</h2>
+					<h2>Stín na pozadí</h2>
 					
 					<input type="checkbox" id="show-gradient" name="show-gradient">
-					<label for="show-gradient">{{ gettext("Zobrazit") }}</label>
+					<label for="show-gradient">Zobrazit</label>
 				</section>
 			</section>
 			
 			<section class="controls-secondary">
-				<h2>{{ gettext('Detaily') }}</h2>
+				<h2>Detaily</h2>
 				
 				<section>
-					<h2>{{ gettext('Tvůj obrázek') }}</h2>
+					<h2>Tvůj obrázek</h2>
 					
-					<b>{{ gettext('Pozice: ') }}
+					<b>Pozice: 
 
 						<button id="move-image-left">←</button>
 						<button id="move-image-up">↑</button>
 						<button id="move-image-right">→</button>
 						<button id="move-image-down">↓</button>
-						<button id="move-image-reset">{{ gettext("Reset") }}</button>
+						<button id="move-image-reset">Reset</button>
 						
 						<br>
 						
-						<small>{{ gettext('(Také možno změnit tažením obrázku)') }}</small>
+						<small>(Také možno změnit tažením obrázku)</small>
 					</b>
 					
 					<br>
 					
 					<b>
-						{{ gettext('Přiblížení: ') }}
+						Přiblížení: 
 
 						<input
 							type="range"
@@ -1755,28 +1755,28 @@
 							id="zoom-image-input"
 							autocomplete="off"
 						>
-						<button id="zoom-image-reset">{{ gettext("Reset") }}</button>
+						<button id="zoom-image-reset">Reset</button>
 					</b>
 				</section>
 				
-				<h2>{{ gettext('Barevné schéma') }}</h2>
+				<h2>Barevné schéma</h2>
 				
 				<section id="color-scheme-wrapper">
 					<select id="color-scheme-selection">
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-white.png') }}"
 							data-color-scheme="black-on-white"
-						>{{ gettext('Černá na bílém pozadí') }}</option>
+						>Černá na bílém pozadí</option>
 						<!--<option
 							data-image-source="{{ url_for('static', filename='images/white-on-black.png') }}"
 							data-color-scheme="white-on-black"
-						>{{ gettext('Bílá na černém pozadí') }}</option>-->
+						>Bílá na černém pozadí</option>-->
 					</select>
 					
 					<br><br>
 					
 					<section id="localization-color-wrapper">
-						<label style="text-align:center;display:block" for="localization-color">{{ gettext('Barva lokalizace') }}</label>
+						<label style="text-align:center;display:block" for="localization-color">Barva lokalizace</label>
 						
 						<select
 							id="localization-color"
@@ -1787,7 +1787,7 @@
 				</section>
 				
 				<section id="color-filter-wrapper">
-					<h2>{{ gettext('Barevný filtr') }}</h2>
+					<h2>Barevný filtr</h2>
 					
 					<select id="filter-color" class="colorPickSelector"></select>
 				</section>
diff --git a/generator/templates/generator.html b/generator/templates/generator.html
index 5c8c5ad84207686bf3de500f795601cbfc1dd30e..82b3a8e48043bb3d284bafc0307c9c879d648a76 100644
--- a/generator/templates/generator.html
+++ b/generator/templates/generator.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html>
 	<head>
-		<title>{{ gettext("Generátor grafiky") }}</title>
+		<title>Generátor grafiky</title>
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width, initial-scale=1">
 		<script
@@ -304,32 +304,32 @@
 			<h1>
 				<img
 					src="{{ url_for('static', filename='images/badges/default-light.png') }}"
-					alt="{{ gettext('Pirátské logo') }}"
+					alt="Pirátské logo"
 					height="40"
 					width="40"
 				>
-				{{ gettext('Generátor grafiky') }}
+				Generátor grafiky
 			</h1>
-			<small>{{ gettext('Tentokrát ty volby vyhrajeme! :)') }}</small>
+			<small>Tentokrát ty volby vyhrajeme! :)</small>
 		</header>
 
 		<main class="container">
 			<div class="canvas-container">
 				<section class="position-top">
 					<section id="primary-image-position-wrapper-upper">
-						<b>{{ gettext('Pozice: ') }}
+						<b>Pozice: 
 
 							<button class="move-primary-image-left">←</button>
 							<button class="move-primary-image-up">↑</button>
 							<button class="move-primary-image-right">→</button>
 							<button class="move-primary-image-down">↓</button>
-							<button class="move-primary-image-reset">{{ gettext("Reset") }}</button>
+							<button class="move-primary-image-reset">Reset</button>
 						</b>
 						
 						<br>
 						
 						<b>
-							{{ gettext('Přiblížení: ') }}
+							Přiblížení: 
 
 							<input
 								type="range"
@@ -339,7 +339,7 @@
 								class="zoom-primary-image-input slider"
 								autocomplete="off"
 							>
-							<button class="zoom-primary-image-reset">{{ gettext("Reset") }}</button>
+							<button class="zoom-primary-image-reset">Reset</button>
 						</b>
 					</section>
 				</section>
@@ -354,23 +354,21 @@
 					></canvas>
 				</section>
 				<section class="settings">
-					<button id="download">{{ gettext('Stáhnout') }}</button>
+					<button id="download">Stáhnout</button>
 				
 					<section id="printing-wrapper">
 						<br>
 						
-						<button id="pdf-a4">{{ gettext("PDF - A4") }}</button>
-						<button id="pdf-a3">{{ gettext("PDF - A3") }}</button>
-						<button id="pdf-a2">{{ gettext("PDF - A2") }}</button>
-						<button id="pdf-a1">{{ gettext("PDF - A1") }}</button>
-						<button id="pdf-a0">{{ gettext("PDF - A0") }}</button>
+						<button id="pdf-a4">PDF - A4</button>
+						<button id="pdf-a3">PDF - A3</button>
+						<button id="pdf-a2">PDF - A2</button>
+						<button id="pdf-a1">PDF - A1</button>
+						<button id="pdf-a0">PDF - A0</button>
 					</section>
 					
 					<br>
 					
-					<h3>{{ gettext("Koncepty") }}</h3>
-					
-					<b style="color:red">CHYSTÁ SE! Koncepty budou v budoucnu fungovat přes Pirátskou Identitu a nejsou dokončené. Prosím, zatím je nepoužívej.</b>
+					<h3>Koncepty</h3>
 					
 					<section>
 						<select id="concept-selection">
@@ -383,287 +381,287 @@
 							class="inline"
 							type="text"
 							id="concept-name"
-							placeholder="{{ gettext('Jméno konceptu') }}"
+							placeholder="Jméno konceptu"
 							autocomplete="off"
 							required
 						>
 						
-						<button id="concept-save">{{ gettext('Uložit') }}</button>
+						<button id="concept-save">Uložit</button>
 						
 						<span id="concept-settings-wrapper" style="display:none">
-							<button id="concept-delete">{{ gettext('Smazat') }}</button>
+							<button id="concept-delete">Smazat</button>
 						</span>
 					</div>
 					
 					<br>
 					
 					<small>
-						{{ gettext('Generátor s ♥ vytvořil ') }}<a href="https://toho.neocities.org" target="_blank" rel="nofollow">{{ gettext('Tomáš Valenta') }}</a>
-						{{ gettext(' pod svobodnou licencí ') }}<a href="https://www.gnu.org/licenses/agpl-3.0.en.html" target="_blank">{{ gettext('AGPLv3') }}</a>{{ gettext('.') }}
+						Generátor s ♥ vytvořil <a href="https://toho.neocities.org" target="_blank" rel="nofollow">Tomáš Valenta</a>
+						pod svobodnou licencí <a href="https://www.gnu.org/licenses/agpl-3.0.en.html" target="_blank">AGPLv3</a>.
 					</small>
 				</section>
 			</div>
 
 			<section class="controls-primary">
 				<section>
-					<h2>{{ gettext('Typ šablony') }}</h2>
+					<h2>Typ šablony</h2>
 
 					<select id="template-selection">
 						<option
 							data-image-source="static/images/examples/bottom-slogan.png"
 							data-template-type="bottom-slogan"
-						>{{ gettext('Velký spodní slogan') }}</option>
+						>Velký spodní slogan</option>
 						<option
 							data-image-source="static/images/examples/bottom_slogan_full_width.png"
 							data-template-type="bottom-slogan-full-width"
-						>{{ gettext('Velký spodní slogan, obdélník zabírající celou šířku') }}</option>
+						>Velký spodní slogan, obdélník zabírající celou šířku</option>
 						<option
 							data-image-source="static/images/examples/bottom-slogan-gradient.png"
 							data-template-type="bottom-slogan-gradient"
-						>{{ gettext('Velký spodní slogan, gradient na pozadí') }}</option>
+						>Velký spodní slogan, gradient na pozadí</option>
 						<option
 							data-image-source="static/images/examples/bottom-slogan-person.png"
 							data-template-type="bottom-slogan-person"
-						>{{ gettext('Velký spodní slogan, podobný nalodění') }}</option>
+						>Velký spodní slogan, podobný nalodění</option>
 						
 						<option
 							data-image-source="static/images/examples/left-long-text.png"
 							data-template-type="left-long-text"
-						>{{ gettext('Dlouhý text vlevo') }}</option>
+						>Dlouhý text vlevo</option>
 						<option
 							data-image-source="static/images/examples/right-long-text.png"
 							data-template-type="right-long-text"
-						>{{ gettext('Dlouhý text vpravo') }}</option>
+						>Dlouhý text vpravo</option>
 						<option
 							data-image-source="static/images/examples/right-big-text.png"
 							data-template-type="right-big-text"
-						>{{ gettext('Velký text vpravo') }}</option>
+						>Velký text vpravo</option>
 						<option
 							data-image-source="static/images/examples/left_corner_slogan.png"
 							data-template-type="left-corner-slogan"
-						>{{ gettext('Slogan v levém rohu, možnost koláže') }}</option>
+						>Slogan v levém rohu, možnost koláže</option>
 						<option
 							data-image-source="static/images/examples/story_with_rectangle.png"
 							data-template-type="story-with-rectangle"
-						>{{ gettext('Story - s obdélníkem') }}</option>
+						>Story - s obdélníkem</option>
 						<option
 							data-image-source="static/images/examples/story_full_width_rectangle.png"
 							data-template-type="story-with-full-width-rectangle"
-						>{{ gettext('Story - obdélník zabírající celou šířku') }}</option>
+						>Story - obdélník zabírající celou šířku</option>
 						<option
 							data-image-source="static/images/examples/poll.png"
 							data-template-type="poll"
-						>{{ gettext('Anketa') }}</option>
+						>Anketa</option>
 						<option
 							data-image-source="static/images/examples/cover.png"
 							data-template-type="cover-static-name-and-logo"
-						>{{ gettext('Cover - pevné jméno a logo') }}</option>
+						>Cover - pevné jméno a logo</option>
 						<option
 							data-image-source="static/images/examples/cover-left.png"
 							data-template-type="cover-static-name-and-logo-left"
-						>{{ gettext('Cover - pevné jméno a logo, obsah vlevo') }}</option>
+						>Cover - pevné jméno a logo, obsah vlevo</option>
 						<option
 							data-image-source="static/images/examples/cover.png"
 							data-template-type="cover"
-						>{{ gettext('Cover') }}</option>
+						>Cover</option>
 						<option
 							data-image-source="static/images/examples/no_image_icon_text.png"
 							data-template-type="no-image-icon-text"
-						>{{ gettext('Bez obrázku - ikona, text') }}</option>
+						>Bez obrázku - ikona, text</option>
 						<option
 							data-image-source="static/images/examples/no_image_text_more_info.png"
 							data-template-type="no-image-text-more-info"
-						>{{ gettext('Bez obrázku - text, více informací') }}</option>
+						>Bez obrázku - text, více informací</option>
 						<option
 							data-image-source="static/images/examples/no_image_quote.png"
 							data-template-type="no-image-quote"
-						>{{ gettext('Bez obrázku - citát') }}</option>
+						>Bez obrázku - citát</option>
 						<option
 							data-image-source="static/images/examples/no_image_big_text_and_icon.png"
 							data-template-type="no-image-big-text-icon"
-						>{{ gettext('Bez obrázku - velký slogan, ikona') }}</option>
+						>Bez obrázku - velký slogan, ikona</option>
 						<option
 							data-image-source="static/images/examples/no_image_big_text_and_icon_with_terciary.png"
 							data-template-type="no-image-big-text-icon-with-terciary"
-						>{{ gettext('Bez obrázku - velký slogan, ikona a delší spodní text') }}</option>
+						>Bez obrázku - velký slogan, ikona a delší spodní text</option>
 						
 						<option
 							data-image-source="static/images/examples/poster_bottom_slogan.png"
 							data-template-type="poster-bottom-slogan-printable"
-						>{{ gettext('NA TISK: Plakát - velký spodní slogan') }}</option>
+						>NA TISK: Plakát - velký spodní slogan</option>
 						<option
 							data-image-source="static/images/examples/poster_bottom_slogan_no_icon.png"
 							data-template-type="poster-bottom-slogan-no-icon-printable"
-						>{{ gettext('NA TISK: Plakát - velký spodní slogan, bez ikony') }}</option>
+						>NA TISK: Plakát - velký spodní slogan, bez ikony</option>
 						<option
 							data-image-source="static/images/examples/poster_center_slogan_no_image.png"
 							data-template-type="poster-center-slogan-no-image-printable"
-						>{{ gettext('NA TISK: Plakát - pouze velký slogan uprostřed, bez obrázku') }}</option>
+						>NA TISK: Plakát - pouze velký slogan uprostřed, bez obrázku</option>
 						<option
 							data-image-source="static/images/examples/poster_center_slogan_icons_no_image.png"
 							data-template-type="poster-center-slogan-icons-no-image-printable"
-						>{{ gettext('NA TISK: Plakát - velký slogan a ikony, bez obrázku') }}</option>
+						>NA TISK: Plakát - velký slogan a ikony, bez obrázku</option>
 						<option
 							data-image-source="static/images/examples/poster_event.png"
 							data-template-type="poster-event"
-						>{{ gettext('NA TISK: Plakát - událost') }}</option>
+						>NA TISK: Plakát - událost</option>
 						
 						<option
 							data-image-source="static/images/examples/banner_name_left.png"
 							data-template-type="banner-name-left"
-						>{{ gettext('Banner - jméno vlevo') }}</option>
+						>Banner - jméno vlevo</option>
 						<option
 							data-image-source="static/images/examples/banner_name_right.png"
 							data-template-type="banner-name-right"
-						>{{ gettext('Banner - jméno vpravo') }}</option>
+						>Banner - jméno vpravo</option>
 						<option
 							data-image-source="static/images/examples/billboard.png"
 							data-template-type="billboard"
-						>{{ gettext('Billboard') }}</option>
+						>Billboard</option>
 						<option
 							data-image-source="static/images/examples/event_text_right.png"
 							data-template-type="event-text-right"
-						>{{ gettext('Událost - text vpravo') }}</option>
+						>Událost - text vpravo</option>
 						<option
 							data-image-source="static/images/examples/event_text_bottom.png"
 							data-template-type="event-text-bottom"
-						>{{ gettext('Událost - text dole') }}</option>
+						>Událost - text dole</option>
 						
 						<option
 							data-image-source="static/images/examples/eu_image_slogan.png"
 							data-template-type="eu-image-slogan"
-						>{{ gettext('EU - obrázek + slogan') }}</option>
+						>EU - obrázek + slogan</option>
 						<option
 							data-image-source="static/images/examples/eu_image_long_text.png"
 							data-template-type="eu-big-text-image"
-						>{{ gettext('EU - dlouhý text, možnost obrázku') }}</option>
+						>EU - dlouhý text, možnost obrázku</option>
 						<option
 							data-image-source="static/images/examples/eu_icons_image.png"
 							data-template-type="eu-icons-image"
-						>{{ gettext('EU - text, ikony, možnost obrázku') }}</option>
+						>EU - text, ikony, možnost obrázku</option>
 						
 						<option
 							data-image-source="static/images/examples/nalodeni.png"
 							data-template-type="nalodeni"
-						>{{ gettext('Nalodění') }}</option>
+						>Nalodění</option>
 						<option
 							data-image-source="static/images/examples/nalodeni_story.png"
 							data-template-type="nalodeni-story"
-						>{{ gettext('Nalodění - story') }}</option>
+						>Nalodění - story</option>
 						
 						<option
 							data-image-source="static/images/examples/rollup_big_logo_short_text.png"
 							data-template-type="rollup-big-logo-short-text"
-						>{{ gettext('Rollup - nutná lokalizace, velké pirátské logo, krátký text') }}</option>
+						>Rollup - nutná lokalizace, velké pirátské logo, krátký text</option>
 						<option
 							data-image-source="static/images/examples/rollup_points.png"
 							data-template-type="rollup-points"
-						>{{ gettext('Rollup - nutná lokalizace, max. 5 bodů') }}</option>
+						>Rollup - nutná lokalizace, max. 5 bodů</option>
 						<option
 							data-image-source="static/images/examples/rollup_short_and_long_text.png"
 							data-template-type="rollup-short-and-long-text"
-						>{{ gettext('Rollup - nutná lokalizace, krátký text a slogan') }}</option>
+						>Rollup - nutná lokalizace, krátký text a slogan</option>
 						
 						<option
 							data-image-source="static/images/examples/koneckorupci.png"
 							data-template-type="koneckorupci-poll"
-						>{{ gettext('Konec korupci - anketa') }}</option>
+						>Konec korupci - anketa</option>
 						
 						<option
 							data-image-source="static/images/examples/humans.png"
 							data-template-type="humans"
-						>{{ gettext('Humans of Piráti') }}</option>
+						>Humans of Piráti</option>
 						
 						<option
 							data-image-source="static/images/examples/bottom-slogan-vertical-logo.png"
 							data-template-type="bottom-slogan-vertical-logo"
-						>{{ gettext('Velký spodní slogan, vertikální logo') }}</option>
+						>Velký spodní slogan, vertikální logo</option>
 						<option
 							data-image-source="static/images/examples/bottom-slogan-gradient-vertical-logo.png"
 							data-template-type="bottom-slogan-gradient-vertical-logo"
-						>{{ gettext('Velký spodní slogan, gradient na pozadí, vertikální logo') }}</option>
+						>Velký spodní slogan, gradient na pozadí, vertikální logo</option>
 						<option
 							data-image-source="static/images/examples/no-image-text-icon-vertical-logo.png"
 							data-template-type="no-image-text-icon-vertical-logo"
-						>{{ gettext('Bez obrázku - text, ikona, vertikální logo') }}</option>
+						>Bez obrázku - text, ikona, vertikální logo</option>
 						
 						<option
 							data-image-source="static/images/examples/pro-usti-poster.png"
 							data-template-type="pro-usti-poster"
-						>{{ gettext('PRO! Ústí - plakát') }}</option>
+						>PRO! Ústí - plakát</option>
 						<option
 							data-image-source="static/images/examples/pro-usti-slogan-icon-bubble.png"
 							data-template-type="pro-usti-slogan-icon-bubble"
-						>{{ gettext('PRO! Ústí - krátký slogan, ikona, bublina') }}</option>
+						>PRO! Ústí - krátký slogan, ikona, bublina</option>
 						<option
 							data-image-source="static/images/examples/pro-usti-slogan-bubble.png"
 							data-template-type="pro-usti-slogan-bubble"
-						>{{ gettext('PRO! Ústí - krátký slogan, bublina') }}</option>
+						>PRO! Ústí - krátký slogan, bublina</option>
 						
 						<option
 							data-image-source="static/images/examples/sticker-number.png"
 							data-template-type="sticker-number"
-						>{{ gettext('Samolepka s číslem kandidátky') }}</option>
+						>Samolepka s číslem kandidátky</option>
 						
 						<option
 							data-image-source="static/images/examples/poster_bottom_slogan.png"
 							data-template-type="poster-bottom-slogan"
-						>{{ gettext('NETISKNOUT: Plakát - velký spodní slogan') }}</option>
+						>NETISKNOUT: Plakát - velký spodní slogan</option>
 						<option
 							data-image-source="static/images/examples/poster_bottom_slogan_no_icon.png"
 							data-template-type="poster-bottom-slogan-no-icon"
-						>{{ gettext('NETISKNOUT: Plakát - velký spodní slogan, bez ikony') }}</option>
+						>NETISKNOUT: Plakát - velký spodní slogan, bez ikony</option>
 						<option
 							data-image-source="static/images/examples/poster_center_slogan_no_image.png"
 							data-template-type="poster-center-slogan-no-image"
-						>{{ gettext('NETISKNOUT: Plakát - pouze velký slogan uprostřed, bez obrázku') }}</option>
+						>NETISKNOUT: Plakát - pouze velký slogan uprostřed, bez obrázku</option>
 						<option
 							data-image-source="static/images/examples/poster_center_slogan_icons_no_image.png"
 							data-template-type="poster-center-slogan-icons-no-image"
-						>{{ gettext('NETISKNOUT: Plakát - velký slogan a ikony, bez obrázku') }}</option>
+						>NETISKNOUT: Plakát - velký slogan a ikony, bez obrázku</option>
 					</select>
 					
 					<p id="template-description"></p>
 				</section>
 			
-				<h2>{{ gettext('Hlavní nastavení') }}</h2>
+				<h2>Hlavní nastavení</h2>
 				
 				<section id="5-point-set-wrapper">
-					<h3>{{ gettext('Set pěti bodů') }}</h3>
+					<h3>Set pěti bodů</h3>
 					
 					<textarea
 						id="5-point-set-text-1"
-						placeholder="{{ gettext('První bod') }}"
+						placeholder="První bod"
 					></textarea>
 					<textarea
 						id="5-point-set-text-2"
-						placeholder="{{ gettext('Druhý bod') }}"
+						placeholder="Druhý bod"
 					></textarea>
 					<textarea
 						id="5-point-set-text-3"
-						placeholder="{{ gettext('Třetí bod') }}"
+						placeholder="Třetí bod"
 					></textarea>
 					<textarea
 						id="5-point-set-text-4"
-						placeholder="{{ gettext('Čtvrtý bod') }}"
+						placeholder="Čtvrtý bod"
 					></textarea>
 					<textarea
 						id="5-point-set-text-5"
-						placeholder="{{ gettext('Pátý bod') }}"
+						placeholder="Pátý bod"
 					></textarea>
 				</section>
 				
-				<h3>{{ gettext('Text') }}</h3>
+				<h3>Text</h3>
 
 				<small>
-					{{ gettext('Pro zvýraznění některých slov platí syntaxe: ') }}<tt>{{ gettext('*slovo*') }}</tt>{{ gettext('.') }}<br>
-					{{ gettext('Prosím, neplýtvej zvýrazňovačem a zvýrazni jen jedno slovo.') }}
+					Pro zvýraznění některých slov platí syntaxe: <tt>*slovo*</tt>.<br>
+					Prosím, neplýtvej zvýrazňovačem a zvýrazni jen jedno slovo.
 				</small>
 
 				<section id="primary-text-wrapper">
 					<textarea
 						id="primary-text"
-						placeholder="{{ gettext('Primární text') }}"
+						placeholder="Primární text"
 					></textarea>
 				</section>
 				
@@ -671,14 +669,14 @@
 					<input
 						type="text"
 						id="name-text"
-						placeholder="{{ gettext('Jméno') }}"
+						placeholder="Jméno"
 					>
 				</section>
 				
 				<section id="under-name-text-wrapper">
 					<textarea
 						id="under-name-text"
-						placeholder="{{ gettext('Text pod jménem') }}"
+						placeholder="Text pod jménem"
 					></textarea>
 				</section>
 				
@@ -686,28 +684,28 @@
 					<input
 						type="text"
 						id="secondary-name-text"
-						placeholder="{{ gettext('Jméno 2') }}"
+						placeholder="Jméno 2"
 					>
 				</section>
 				
 				<section id="secondary-under-name-text-wrapper">
 					<textarea
 						id="secondary-under-name-text"
-						placeholder="{{ gettext('Text pod 2. jménem') }}"
+						placeholder="Text pod 2. jménem"
 					></textarea>
 				</section>
 
 				<section id="secondary-text-wrapper">
 					<textarea
 						id="secondary-text"
-						placeholder="{{ gettext('Sekundární text') }}"
+						placeholder="Sekundární text"
 					></textarea>
 				</section>
 				
 				<section id="terciary-text-wrapper">
 					<textarea
 						id="terciary-text"
-						placeholder="{{ gettext('Terciární text') }}"
+						placeholder="Terciární text"
 					></textarea>
 				</section>
 				
@@ -715,7 +713,7 @@
 					<input
 						type="text"
 						id="date-text"
-						placeholder="{{ gettext('Datum') }}"
+						placeholder="Datum"
 					>
 				</section>
 				
@@ -723,7 +721,7 @@
 					<input
 						type="text"
 						id="time-text"
-						placeholder="{{ gettext('Čas') }}"
+						placeholder="Čas"
 					>
 				</section>
 				
@@ -731,14 +729,14 @@
 					<input
 						type="text"
 						id="location-text"
-						placeholder="{{ gettext('Místo') }}"
+						placeholder="Místo"
 					>
 				</section>
 
 				<section id="icon-text-wrapper">
 					<textarea
 						id="icon-text"
-						placeholder="{{ gettext('Text vedle ikony, bez ikony vyplňuje její prostor') }}"
+						placeholder="Text vedle ikony, bez ikony vyplňuje její prostor"
 					></textarea>
 					
 				</section>
@@ -750,7 +748,7 @@
 						id="show-requester"
 						name="show-requester"
 					>
-					<label for="show-requester">{{ gettext('Zobrazit zadavatele a zpracovatele') }}</label>
+					<label for="show-requester">Zobrazit zadavatele a zpracovatele</label>
 					
 					<br>
 					
@@ -758,8 +756,8 @@
 						style="display:none"
 						type="text"
 						id="requester-text"
-						placeholder="{{ gettext('Zadavatel a zpracovatel') }}"
-						value="{{ gettext('Zadavatel a zpracovatel: Piráti') }}"
+						placeholder="Zadavatel a zpracovatel"
+						value="Zadavatel a zpracovatel: Piráti"
 					>
 				</section>
 				
@@ -770,237 +768,237 @@
 						name="show-gradient"
 						checked
 					>
-					<label for="show-gradient">{{ gettext('Zobrazit gradient') }}</label>
+					<label for="show-gradient">Zobrazit gradient</label>
 				</section>
 
 				<section id="primary-image-wrapper">
-					<h3>{{ gettext('Hlavní obrázek') }}</h3>
+					<h3>Hlavní obrázek</h3>
 
 					<input type="file" accept="image/*" id="primary-image" name="primary-image">
 					
 					<section id="additional-3-primary-images-wrapper">
-						<h4>{{ gettext('Vedlejší obrázky do koláže') }}</h4>
+						<h4>Vedlejší obrázky do koláže</h4>
 						
 						<input type="file" accept="image/*" id="additional-primary-image-0" name="additional-primary-image-0">
-						<button id="reset-additional-primary-image-0">{{ gettext('Resetovat') }}</button>
+						<button id="reset-additional-primary-image-0">Resetovat</button>
 						
 						<input type="file" accept="image/*" id="additional-primary-image-1" name="additional-primary-image-1">
-						<button id="reset-additional-primary-image-1">{{ gettext('Resetovat') }}</button>
+						<button id="reset-additional-primary-image-1">Resetovat</button>
 						
 						<input type="file" accept="image/*" id="additional-primary-image-2" name="additional-primary-image-2">
-						<button id="reset-additional-primary-image-2">{{ gettext('Resetovat') }}</button>
+						<button id="reset-additional-primary-image-2">Resetovat</button>
 					</section>
 				</section>
 				
 				<section id="secondary-image-wrapper">
-					<h3>{{ gettext('Sekundární obrázek') }}</h3>
+					<h3>Sekundární obrázek</h3>
 
 					<input type="file" accept="image/*" id="secondary-image" name="secondary-image">
 				</section>
 				
 				<section id="2-reaction-set-wrapper">
-					<h3>{{ gettext('Reakce') }}</h3>
+					<h3>Reakce</h3>
 
-					<h4>{{ gettext('Vlevo') }}</h4>
+					<h4>Vlevo</h4>
 					
 					<select id="2-reaction-set-image-1-selection">
-						<option>{{ gettext('Žádná reakce') }}</option>
+						<option>Žádná reakce</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/like.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/like.png') }}"
-						>{{ gettext('Like') }}</option>
+						>Like</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/laugh.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/laugh.png') }}"
-						>{{ gettext('Smích') }}</option>
+						>Smích</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/heart.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/heart.png') }}"
-						>{{ gettext('Srdce') }}</option>
+						>Srdce</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/angry.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/angry.png') }}"
-						>{{ gettext('Naštvaný') }}</option>
+						>Naštvaný</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/sad.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/sad.png') }}"
-						>{{ gettext('Smutný') }}</option>
+						>Smutný</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/surprised.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/surprised.png') }}"
-						>{{ gettext('Překvapený') }}</option>
+						>Překvapený</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/care.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/care.png') }}"
-						>{{ gettext('Péče') }}</option>
+						>Péče</option>
 					</select>
 
 					<textarea
 						id="2-reaction-set-text-1"
 						type="text"
-						placeholder="{{ gettext('Text') }}"
+						placeholder="Text"
 					></textarea>
 
-					<h4>{{ gettext('Vpravo') }}</h4>
+					<h4>Vpravo</h4>
 
 					<select id="2-reaction-set-image-2-selection">
-						<option>{{ gettext('Žádná reakce') }}</option>
+						<option>Žádná reakce</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/like.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/like.png') }}"
-						>{{ gettext('Like') }}</option>
+						>Like</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/laugh.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/laugh.png') }}"
-						>{{ gettext('Smích') }}</option>
+						>Smích</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/heart.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/heart.png') }}"
-						>{{ gettext('Srdce') }}</option>
+						>Srdce</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/angry.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/angry.png') }}"
-						>{{ gettext('Naštvaný') }}</option>
+						>Naštvaný</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/sad.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/sad.png') }}"
-						>{{ gettext('Smutný') }}</option>
+						>Smutný</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/surprised.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/surprised.png') }}"
-						>{{ gettext('Překvapený') }}</option>
+						>Překvapený</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/reactions/care.png') }}"
 							data-image-reaction-source="{{ url_for('static', filename='images/reactions/care.png') }}"
-						>{{ gettext('Péče') }}</option>
+						>Péče</option>
 					</select>
 
 					<textarea
 						id="2-reaction-set-text-2"
 						type="text"
-						placeholder="{{ gettext('Text') }}"
+						placeholder="Text"
 					></textarea>
 				</section>
 				
 				<section id="4-icon-group-wrapper">
-					<h3>{{ gettext('Set čtyřech ikon') }}</h3>
+					<h3>Set čtyřech ikon</h3>
 					
-					<h4>{{ gettext('První ikona') }}</h4>
+					<h4>První ikona</h4>
 
 					<select id="4-icon-group-image-1-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="4-icon-group-text-1"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Druhá ikona') }}</h4>
+					<h4>Druhá ikona</h4>
 
 					<select id="4-icon-group-image-2-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="4-icon-group-text-2"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Třetí ikona') }}</h4>
+					<h4>Třetí ikona</h4>
 
 					<select id="4-icon-group-image-3-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="4-icon-group-text-3"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Čtvrtá ikona') }}</h4>
+					<h4>Čtvrtá ikona</h4>
 
 					<select id="4-icon-group-image-4-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="4-icon-group-text-4"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 				</section>
 				
 				<section id="5-icon-group-wrapper">
-					<h3>{{ gettext('Set pěti ikon') }}</h3>
+					<h3>Set pěti ikon</h3>
 					
-					<h4>{{ gettext('První ikona') }}</h4>
+					<h4>První ikona</h4>
 
 					<select id="5-icon-group-image-1-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="5-icon-group-text-1"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Druhá ikona') }}</h4>
+					<h4>Druhá ikona</h4>
 
 					<select id="5-icon-group-image-2-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="5-icon-group-text-2"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Třetí ikona') }}</h4>
+					<h4>Třetí ikona</h4>
 
 					<select id="5-icon-group-image-3-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="5-icon-group-text-3"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Čtvrtá ikona') }}</h4>
+					<h4>Čtvrtá ikona</h4>
 
 					<select id="5-icon-group-image-4-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="5-icon-group-text-4"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 					
-					<h4>{{ gettext('Pátá ikona') }}</h4>
+					<h4>Pátá ikona</h4>
 
 					<select id="5-icon-group-image-5-selection" class="icon-selection"></select>
 					
 					<textarea
 						id="5-icon-group-text-5"
 						rows="2"
-						placeholder="{{ gettext('Text vedle ikony') }}"
+						placeholder="Text vedle ikony"
 					></textarea>
 				</section>
 				
 				<section id="icon-image-wrapper">
-					<h3>{{ gettext('Ikony') }}</h3>
+					<h3>Ikony</h3>
 					
-					<small>{{ gettext('(Vyhledávání podle textu je možné)') }}</small><br>
+					<small>(Vyhledávání podle textu je možné)</small><br>
 
 					<select id="icon-image-selection" class="icon-selection"></select>
 					
 					<br><br>
 					
 					<b>
-						{{ gettext('Nebo nahraj vlastní: ') }}
+						Nebo nahraj vlastní: 
 						<input type="file" id="icon-image-input">
 					</b>
 					
-					<button id="icon-image-reset">{{ gettext('Resetovat') }}</button>
+					<button id="icon-image-reset">Resetovat</button>
 				</section>
 				
 				<section id="pro-usti-icon-image-wrapper">
-					<h3>{{ gettext('PRO! Ústí - Ikona') }}</h3>
+					<h3>PRO! Ústí - Ikona</h3>
 					
-					<small>{{ gettext('(Vyhledávání podle textu je možné)') }}</small><br>
+					<small>(Vyhledávání podle textu je možné)</small><br>
 					
 					<select id="pro-usti-icon-image-selection">
 						<option
@@ -1037,20 +1035,20 @@
 					<br><br>
 					
 					<b>
-						{{ gettext('Nebo nahraj vlastní: ') }}
+						Nebo nahraj vlastní: 
 						<input type="file" id="pro-usti-icon-image-input">
 					</b>
 					
-					<button id="pro-usti-icon-image-reset">{{ gettext('Resetovat') }}</button>
+					<button id="pro-usti-icon-image-reset">Resetovat</button>
 				</section>
 				
 				<section id="location-image-wrapper">
-					<h3>{{ gettext('Lokalizace') }}</h3>
+					<h3>Lokalizace</h3>
 					
-					<small>{{ gettext('(Vyhledávání podle textu je možné)') }}</small><br>
+					<small>(Vyhledávání podle textu je možné)</small><br>
 
 					<select id="location-image-selection">
-						<option>{{ gettext('Žádná lokalizace') }}</option>
+						<option>Žádná lokalizace</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/locations/Benesov-1-dark.png') }}"
 							data-image-location-source="{{ url_for('static', filename='images/locations/Benesov-1.png') }}"
@@ -1575,65 +1573,65 @@
 							name="location-to-top"
 							id="location-to-top"
 						>
-						<label for="location-to-top">{{ gettext('Zobrazit nahoře') }}</label>
+						<label for="location-to-top">Zobrazit nahoře</label>
 					</section>
 				</section>
 				
 				<section id="qr-code-wrapper">
-					<h3>{{ gettext('QR kód') }}</h3>
+					<h3>QR kód</h3>
 					
 					<input
 						type="text"
 						id="qr-code-source"
-						placeholder="{{ gettext('Adresa stránek') }}"
+						placeholder="Adresa stránek"
 					>
 				</section>
 				
 				<section id="selectable-rollup-background-wrapper">
-					<h3>{{ gettext('Pozadí rollupu') }}</h3>
+					<h3>Pozadí rollupu</h3>
 					
 					<select id="selectable-rollup-background">
 						<option
 							data-image-source="{{ url_for('static', filename='images/scroll-backgrounds/prerov-dark.png') }}"
 							data-color-scheme="white-on-black-prerov"
-						>{{ gettext("Přerov - tmavé pozadí") }}</option>
+						>Přerov - tmavé pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/scroll-backgrounds/prerov-light.png') }}"
 							data-color-scheme="black-on-white-prerov"
-						>{{ gettext("Přerov - světlé pozadí") }}</option>
+						>Přerov - světlé pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/scroll-backgrounds/pardubice-dark.png') }}"
 							data-color-scheme="white-on-black-pardubice"
-						>{{ gettext("Pardubice - tmavé pozadí") }}</option>
+						>Pardubice - tmavé pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/scroll-backgrounds/pardubice-light.png') }}"
 							data-color-scheme="black-on-white-pardubice"
-						>{{ gettext("Pardubice - světlé pozadí") }}</option>
+						>Pardubice - světlé pozadí</option>
 					</select>
 				</section>
 			</section>
 			
 			<section class="controls-secondary">
 				<section id="primary-image-position-wrapper-lower">
-					<h2>{{ gettext('Detaily') }}</h2>
-					<h3>{{ gettext('Hlavní obrázek') }}</h3>
-					<b>{{ gettext('Pozice: ') }}
+					<h2>Detaily</h2>
+					<h3>Hlavní obrázek</h3>
+					<b>Pozice: 
 
 						<button class="move-primary-image-left">←</button>
 						<button class="move-primary-image-up">↑</button>
 						<button class="move-primary-image-right">→</button>
 						<button class="move-primary-image-down">↓</button>
-						<button class="move-primary-image-reset">{{ gettext("Reset") }}</button>
+						<button class="move-primary-image-reset">Reset</button>
 						
 						<br>
 						
-						<small>{{ gettext('(Také možno změnit tažením obrázku)') }}</small>
+						<small>(Také možno změnit tažením obrázku)</small>
 					</b>
 					
 					<br>
 					
 					<b>
-						{{ gettext('Přiblížení: ') }}
+						Přiblížení: 
 
 						<input
 							type="range"
@@ -1643,34 +1641,34 @@
 							class="zoom-primary-image-input slider"
 							autocomplete="off"
 						>
-						<button class="zoom-primary-image-reset">{{ gettext("Reset") }}</button>
+						<button class="zoom-primary-image-reset">Reset</button>
 					</b>
 				</section>
 
 				<section id="logo-image-wrapper">
-					<h3>{{ gettext('Logo') }}</h3>
+					<h3>Logo</h3>
 
 					<div id="logo-is-center-wrapper">
 						<input type="checkbox" id="logo-is-center" name="logo-is-center">
-						<label for="logo-is-center">{{ gettext("Na střed") }}</label>
+						<label for="logo-is-center">Na střed</label>
 					
 						<br><br>
 					</div>
 					
 					<div id="logo-additional-image-wrapper">
 						<label for="logo-additional-image">
-							<b>{{ gettext('Prosím, nepoužívej jiné varianty pirátského loga! U svého vlastního pamatuj na průhledné pozadí.') }}</b><br>
-							{{ gettext('Přidat vlastní: ') }}
+							<b>Prosím, nepoužívej jiné varianty pirátského loga! U svého vlastního pamatuj na průhledné pozadí.</b><br>
+							Přidat vlastní: 
 						</label>
 						<input type="file" accept="image/*" id="logo-additional-image" name="logo-additional-image">
 						
 						<br>
 
-						<button id="logo-additional-image-reset">{{ gettext("Resetovat") }}</button>
+						<button id="logo-additional-image-reset">Resetovat</button>
 					</div>
 					
 					<div id="logo-size-wrapper">
-						<label for="logo-image-zoom"><b>{{ gettext('Velikost loga:') }}</b></label>
+						<label for="logo-image-zoom"><b>Velikost loga:</b></label>
 						
 						<input
 							type="range"
@@ -1682,21 +1680,21 @@
 							class="slider"
 							autocomplete="off"
 						>
-						<button id="logo-image-zoom-reset">{{ gettext("Reset") }}</button>
+						<button id="logo-image-zoom-reset">Reset</button>
 					</div>
 				</section>
 				
 				<section id="background-has-pattern-wrapper">
-					<h3>{{ gettext('Vzor na pozadí') }}</h3>
+					<h3>Vzor na pozadí</h3>
 					
 					<input type="checkbox" id="background-has-pattern" name="background-has-pattern">
-					<label for="background-has-pattern" checked>{{ gettext("Zobrazit") }}</label>
+					<label for="background-has-pattern" checked>Zobrazit</label>
 				</section>
 				
-				<h3>{{ gettext('Nastavení barev') }}</h3>
+				<h3>Nastavení barev</h3>
 
 				<section id="pro-usti-color-scheme-wrapper">
-					<h4>{{ gettext('Barvy PRO! Ústí') }}</h4>
+					<h4>Barvy PRO! Ústí</h4>
 					
 					<select id="pro-usti-color-scheme-selection">
 						<option
@@ -1728,436 +1726,436 @@
 				
 				<section id="primary-color-scheme-wrapper">
 					<section id="coalition-wrapper">
-						<h4>{{ gettext('Podle koalice') }}</h4>
+						<h4>Podle koalice</h4>
 						<select id="coalition-selection">
-							<option>{{ gettext('Žádná koalice') }}</option>
+							<option>Žádná koalice</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/forum_jihlava_purple_dark.png') }}"
 								data-coalition="forum-jihlava-purple-dark"
-							>{{ gettext('Piráti a Fórum Jihlava - fialové barvy, tmavé pozadí') }}</option>
+							>Piráti a Fórum Jihlava - fialové barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/forum_jihlava_purple_light.png') }}"
 								data-coalition="forum-jihlava-purple-light"
-							>{{ gettext('Piráti a Fórum Jihlava - fialové barvy, světlé pozadí') }}</option>
+							>Piráti a Fórum Jihlava - fialové barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/forum_jihlava.png') }}"
 								data-coalition="forum-jihlava-dark"
-							>{{ gettext('Piráti a Fórum Jihlava - původní barvy') }}</option>
+							>Piráti a Fórum Jihlava - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_most_green_dark.png') }}"
 								data-coalition="zeleni-most-green-dark"
-							>{{ gettext('Piráti a Zelení pro Most - zelené barvy, tmavé pozadí') }}</option>
+							>Piráti a Zelení pro Most - zelené barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_most_green_light.png') }}"
 								data-coalition="zeleni-most-green-light"
-							>{{ gettext('Piráti a Zelení pro Most - zelené barvy, světlé pozadí') }}</option>
+							>Piráti a Zelení pro Most - zelené barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_most.png') }}"
 								data-coalition="zeleni-most-dark"
-							>{{ gettext('Piráti a Zelení pro Most - původní barvy') }}</option>
+							>Piráti a Zelení pro Most - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_praha14_green_dark.png') }}"
 								data-coalition="zeleni-praha14-green-dark"
-							>{{ gettext('Piráti, Nezávislí a Zelení, Praha 14 - zelené barvy, tmavé pozadí') }}</option>
+							>Piráti, Nezávislí a Zelení, Praha 14 - zelené barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_praha14_green_light.png') }}"
 								data-coalition="zeleni-praha14-green-light"
-							>{{ gettext('Piráti, Nezávislí a Zelení, Praha 14 - zelené barvy, světlé pozadí') }}</option>
+							>Piráti, Nezávislí a Zelení, Praha 14 - zelené barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni14_praha.png') }}"
 								data-coalition="zeleni-praha14-dark"
-							>{{ gettext('Piráti, Nezávislí a Zelení, Praha 14 - původní barvy') }}</option>
+							>Piráti, Nezávislí a Zelení, Praha 14 - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_praha13_green_dark.png') }}"
 								data-coalition="zeleni-praha13-green-dark"
-							>{{ gettext('Piráti a Zelení, Praha 13 - zelené barvy, tmavé pozadí') }}</option>
+							>Piráti a Zelení, Praha 13 - zelené barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_praha13_green_light.png') }}"
 								data-coalition="zeleni-praha13-green-light"
-							>{{ gettext('Piráti a Zelení, Praha 13 - zelené barvy, světlé pozadí') }}</option>
+							>Piráti a Zelení, Praha 13 - zelené barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/zeleni_praha13.png') }}"
 								data-coalition="zeleni-praha13-dark"
-							>{{ gettext('Piráti a Zelení, Praha 13 - původní barvy') }}</option>
+							>Piráti a Zelení, Praha 13 - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/volary_green_dark.png') }}"
 								data-coalition="volary-green-dark"
-							>{{ gettext('Odvážně pro Volary - zelené barvy, tmavé pozadí') }}</option>
+							>Odvážně pro Volary - zelené barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/volary_green_light.png') }}"
 								data-coalition="volary-green-light"
-							>{{ gettext('Odvážně pro Volary - zelené barvy, světlé pozadí') }}</option>
+							>Odvážně pro Volary - zelené barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/volary.png') }}"
 								data-coalition="volary-dark"
-							>{{ gettext('Odvážně pro Volary - původní barvy') }}</option>
+							>Odvážně pro Volary - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/louny_spolecne_purple_dark.png') }}"
 								data-coalition="louny-spolecne-purple-dark"
-							>{{ gettext('Louny Společně - fialové barvy, tmavé pozadí') }}</option>
+							>Louny Společně - fialové barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/louny_spolecne_purple_light.png') }}"
 								data-coalition="louny-spolecne-purple-light"
-							>{{ gettext('Louny Společně - fialové barvy, světlé pozadí') }}</option>
+							>Louny Společně - fialové barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/louny_spolecne.png') }}"
 								data-coalition="spolecne-s-piraty-dark"
-							>{{ gettext('Louny Společně - původní barvy') }}</option>
+							>Louny Společně - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/vice_litomerice_blue_dark.png') }}"
 								data-coalition="vice-litomerice-blue-dark"
-							>{{ gettext('Více pro Litoměřice - modré barvy, tmavé pozadí') }}</option>
+							>Více pro Litoměřice - modré barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/vice_litomerice_blue_light.png') }}"
 								data-coalition="vice-litomerice-blue-light"
-							>{{ gettext('Více pro Litoměřice - modré barvy, světlé pozadí') }}</option>
+							>Více pro Litoměřice - modré barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/vice_litomerice.png') }}"
 								data-coalition="vice-litomerice-dark"
-							>{{ gettext('Více pro Litoměřice - původní barvy') }}</option>
+							>Více pro Litoměřice - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/stranane_yellow_white.png') }}"
 								data-coalition="stranane-yellow-white"
-							>{{ gettext('Straňané - žlutá na bílé') }}</option>
+							>Straňané - žlutá na bílé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/stranane_white_yellow.png') }}"
 								data-coalition="stranane-white-yellow"
-							>{{ gettext('Straňané - bílá na žluté') }}</option>
+							>Straňané - bílá na žluté</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/stranane_gray_yellow.png') }}"
 								data-coalition="stranane-gray-yellow"
-							>{{ gettext('Straňané - šedá na žluté') }}</option>
+							>Straňané - šedá na žluté</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/stranane_base.png') }}"
 								data-coalition="stranane-base"
-							>{{ gettext('Straňané - původní barvy') }}</option>
+							>Straňané - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/prusanky_yellow_white.png') }}"
 								data-coalition="prusanky-yellow-white"
-							>{{ gettext('Mladí pro Prušánky - žlutá na bílé') }}</option>
+							>Mladí pro Prušánky - žlutá na bílé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/prusanky_white_yellow.png') }}"
 								data-coalition="prusanky-white-yellow"
-							>{{ gettext('Mladí pro Prušánky - bílá na žluté') }}</option>
+							>Mladí pro Prušánky - bílá na žluté</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/prusanky_black_yellow.png') }}"
 								data-coalition="prusanky-black-yellow"
-							>{{ gettext('Mladí pro Prušánky - černá na žluté') }}</option>
+							>Mladí pro Prušánky - černá na žluté</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/prusanky_base.png') }}"
 								data-coalition="prusanky-base"
-							>{{ gettext('Mladí pro Prušánky - původní barvy') }}</option>
+							>Mladí pro Prušánky - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/ujezd_white_green.png') }}"
 								data-coalition="ujezd-white-green"
-							>{{ gettext('Újezd Žije - bílá na zelené') }}</option>
+							>Újezd Žije - bílá na zelené</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/ujezd_green_white.png') }}"
 								data-coalition="ujezd-green-white"
-							>{{ gettext('Újezd Žije - zelená na bílé') }}</option>
+							>Újezd Žije - zelená na bílé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/ujezd_base.png') }}"
 								data-coalition="ujezd-base"
-							>{{ gettext('Újezd Žije - původní barvy') }}</option>
+							>Újezd Žije - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/cssd_black_red.png') }}"
 								data-coalition="cssd-rychnov-black-red"
-							>{{ gettext('Piráti a ČSSD Rychnov - černá na červené') }}</option>
+							>Piráti a ČSSD Rychnov - černá na červené</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/cssd_red_black.png') }}"
 								data-coalition="cssd-rychnov-red-black"
-							>{{ gettext('Piráti a ČSSD Rychnov - červená na černé') }}</option>
+							>Piráti a ČSSD Rychnov - červená na černé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/cssd_base.png') }}"
 								data-coalition="cssd-rychnov-base"
-							>{{ gettext('Piráti a ČSSD Rychnov - původní barvy') }}</option>
+							>Piráti a ČSSD Rychnov - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/jilemnice_purple_black.png') }}"
 								data-coalition="jilemnice-black-purple"
-							>{{ gettext('Jílemnice Budoucnosti - černá na fialové') }}</option>
+							>Jílemnice Budoucnosti - černá na fialové</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/jilemnice_black_purple.png') }}"
 								data-coalition="jilemnice-purple-black"
-							>{{ gettext('Jílemnice Budoucnosti - fialová na černé') }}</option>
+							>Jílemnice Budoucnosti - fialová na černé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/jilemnice_base.png') }}"
 								data-coalition="jilemnice-base"
-							>{{ gettext('Jílemnice Budoucnosti - původní barvy') }}</option>
+							>Jílemnice Budoucnosti - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/novarole_white_green.png') }}"
 								data-coalition="novarole-white-green"
-							>{{ gettext('Novorolští Piráti - bílá na zelené') }}</option>
+							>Novorolští Piráti - bílá na zelené</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/novarole_green_white.png') }}"
 								data-coalition="novarole-green-white"
-							>{{ gettext('Novorolští Piráti - zelená na bílé') }}</option>
+							>Novorolští Piráti - zelená na bílé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/novarole_green_black.png') }}"
 								data-coalition="novarole-green-black"
-							>{{ gettext('Novorolští Piráti - zelená na černé') }}</option>
+							>Novorolští Piráti - zelená na černé</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/novarole_base.png') }}"
 								data-coalition="novarole-base"
-							>{{ gettext('Novorolští Piráti - původní barvy') }}</option>
+							>Novorolští Piráti - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/pirati_spolecne_blue_dark.png') }}"
 								data-coalition="spolecne-s-piraty-blue-dark"
-							>{{ gettext('Společně s Piráty - modré barvy, tmavé pozadí') }}</option>
+							>Společně s Piráty - modré barvy, tmavé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/pirati_spolecne_blue_light.png') }}"
 								data-coalition="spolecne-s-piraty-blue-light"
-							>{{ gettext('Společně s Piráty - modré barvy, světlé pozadí') }}</option>
+							>Společně s Piráty - modré barvy, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/pirati_spolecne.png') }}"
 								data-coalition="spolecne-s-piraty-dark"
-							>{{ gettext('Společně s Piráty - původní barvy') }}</option>
+							>Společně s Piráty - původní barvy</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/nezavisli_light.png') }}"
 								data-coalition="nezavisli-light"
-							>{{ gettext('Piráti a Nezávislí kandidáti, světlé pozadí') }}</option>
+							>Piráti a Nezávislí kandidáti, světlé pozadí</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/nezavisli_dark.png') }}"
 								data-coalition="nezavisli-dark"
-							>{{ gettext('Piráti a Nezávislí kandidáti, tmavé pozadí') }}</option>
+							>Piráti a Nezávislí kandidáti, tmavé pozadí</option>
 							
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/dana_balcarova_light.png') }}"
 								data-coalition="balcarova-light"
-							>{{ gettext('Dana Balcarová - fialové logo, světlé pozadí') }}</option>
+							>Dana Balcarová - fialové logo, světlé pozadí</option>
 							<option
 								data-image-source="{{ url_for('static', filename='images/examples/dana_balcarova_dark.png') }}"
 								data-coalition="balcarova-dark"
-							>{{ gettext('Dana Balcarová - fialové logo, tmavé pozadí') }}</option>
+							>Dana Balcarová - fialové logo, tmavé pozadí</option>
 						</select>
 						
 						<section id="litomerice-corner" style="display:none">
-							<h4>{{ gettext("Typ rohu") }}</h4>
+							<h4>Typ rohu</h4>
 							
 							<select id="litomerice-corner-type-selection">
-								<option value="none">{{ gettext('Žádný roh') }}</option>
+								<option value="none">Žádný roh</option>
 								
-								<option value="#000000">{{ gettext('Piráti - černá') }}</option>
-								<option value="#a22de6">{{ gettext('TOP 09 - fialová') }}</option>
-								<option value="#ffe05d">{{ gettext('KDU-ČSL - žlutá') }}</option>
-								<option value="#94da58">{{ gettext('Zelení - zelená') }}</option>
+								<option value="#000000">Piráti - černá</option>
+								<option value="#a22de6">TOP 09 - fialová</option>
+								<option value="#ffe05d">KDU-ČSL - žlutá</option>
+								<option value="#94da58">Zelení - zelená</option>
 							</select>
 						</section>
 					</section>
 					
-					<h4>{{ gettext('Hlavní barvy') }}</h4>
+					<h4>Hlavní barvy</h4>
 					<select id="primary-color-scheme-selection">
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-white.png') }}"
 							data-color-scheme="black-on-white"
-						>{{ gettext('Černý text na bílém pozadí') }}</option>
+						>Černý text na bílém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/white-on-black.png') }}"
 							data-color-scheme="white-on-black"
-						>{{ gettext('Bílý text na černém pozadí') }}</option>
+						>Bílý text na černém pozadí</option>
 					</select>
 				</section>
 				
 				<section id="name-color-scheme-wrapper">
-					<h4>{{ gettext('Barvy boxu se jménem') }}</h4>
+					<h4>Barvy boxu se jménem</h4>
 					<select id="name-color-scheme-selection">
 						<option
 							data-image-source="{{ url_for('static', filename='images/white-on-black.png') }}"
 							data-color-scheme="white-on-black"
 							value="white-on-black"
-						>{{ gettext('Bílý text na černém pozadí') }}</option>
+						>Bílý text na černém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-white.png') }}"
 							data-color-scheme="black-on-white"
 							value="black-on-white"
-						>{{ gettext('Černý text na bílém pozadí') }}</option>
+						>Černý text na bílém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-gold.png') }}"
 							data-color-scheme="black-on-gold"
 							value="black-on-gold"
-						>{{ gettext('Černý text na zlatém pozadí') }}</option>
+						>Černý text na zlatém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-blue.png') }}"
 							data-color-scheme="black-on-blue"
 							value="black-on-blue"
-						>{{ gettext('Černý text na modrém pozadí') }}</option>
+						>Černý text na modrém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-gray.png') }}"
 							data-color-scheme="black-on-gray"
 							value="black-on-gray"
-						>{{ gettext('Černý text na šedém pozadí') }}</option>
+						>Černý text na šedém pozadí</option>
 					</select>
 				</section>
 				
 				<section id="secondary-color-scheme-wrapper">
-					<h4>{{ gettext('Barvy boxu se sekundárním textem') }}</h4>
+					<h4>Barvy boxu se sekundárním textem</h4>
 					<select id="secondary-color-scheme-selection">
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-gray.png') }}"
 							data-color-scheme="black-on-gray"
 							value="black-on-gray"
-						>{{ gettext('Černý text na šedém pozadí') }}</option>
+						>Černý text na šedém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/white-on-black.png') }}"
 							data-color-scheme="white-on-black"
 							value="white-on-black"
-						>{{ gettext('Bílý text na černém pozadí') }}</option>
+						>Bílý text na černém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-white.png') }}"
 							data-color-scheme="black-on-white"
 							value="black-on-white"
-						>{{ gettext('Černý text na bílém pozadí') }}</option>
+						>Černý text na bílém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-blue.png') }}"
 							data-color-scheme="black-on-blue"
 							value="black-on-blue"
-						>{{ gettext('Černý text na modrém pozadí') }}</option>
+						>Černý text na modrém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-gold.png') }}"
 							data-color-scheme="black-on-gold"
 							value="black-on-gold"
-						>{{ gettext('Černý text na zlatém pozadí') }}</option>
+						>Černý text na zlatém pozadí</option>
 					</select>
 				</section>
 				
 				<section id="terciary-color-scheme-wrapper">
-					<h4>{{ gettext('Barvy boxu s terciárním textem') }}</h4>
+					<h4>Barvy boxu s terciárním textem</h4>
 					<select id="terciary-color-scheme-selection">
 						<option
 							data-image-source="{{ url_for('static', filename='images/white-on-black.png') }}"
 							data-color-scheme="white-on-black"
 							value="white-on-black"
-						>{{ gettext('Bílý text na černém pozadí') }}</option>
+						>Bílý text na černém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-white.png') }}"
 							data-color-scheme="black-on-white"
 							value="black-on-white"
-						>{{ gettext('Černý text na bílém pozadí') }}</option>
+						>Černý text na bílém pozadí</option>
 						<option
 							data-image-source="{{ url_for('static', filename='images/black-on-gold.png') }}"
 							data-color-scheme="black-on-gold"
 							value="black-on-gold"
-						>{{ gettext('Černý text na zlatém pozadí') }}</option>
+						>Černý text na zlatém pozadí</option>
 					</select>
 				</section>
 				
 				<section id="color-palette-wrapper">
-					<h4>{{ gettext('Paleta - vlastní barvy') }}</h4>
+					<h4>Paleta - vlastní barvy</h4>
 
 					<div id="primary-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Primární text') }}
+						Primární text
 						<select class="colorPickSelector" id="primary-text-color"></select>
 					</div>
 					
 					<div id="icon-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Text u ikon') }}
+						Text u ikon
 						<select class="colorPickSelector" id="icon-text-color"></select>
 					</div>
 					
 					<div id="background-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Pozadí') }}
+						Pozadí
 						<select class="colorPickSelector" id="background-color"></select>
 					</div>
 					
 					<div id="foreground-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Popředí') }}
+						Popředí
 						<select class="colorPickSelector" id="foreground-color"></select>
 					</div>
 					
 					<div id="background-gradient-color1-wrapper" class="color-picker-wrapper">
-						{{ gettext('První barva gradientu na pozadí') }}
+						První barva gradientu na pozadí
 						<select class="colorPickSelector" id="background-gradient-color1"></select>
 					</div>
 					<div id="background-gradient-color2-wrapper" class="color-picker-wrapper">
-						{{ gettext('Druhá barva gradientu na pozadí') }}
+						Druhá barva gradientu na pozadí
 						<select class="colorPickSelector" id="background-gradient-color2"></select>
 					</div>
 					
 					<div id="name-background-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Pozadí jména') }}
+						Pozadí jména
 						<select class="colorPickSelector" id="name-background-color"></select>
 					</div>
 					
 					<div id="name-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Jméno') }}
+						Jméno
 						<select class="colorPickSelector" id="name-text-color"></select>
 					</div>
 					
 					<div id="under-name-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Text pod jménem') }}
+						Text pod jménem
 						<select class="colorPickSelector" id="under-name-text-color"></select>
 					</div>
 					
 					<div id="secondary-text-background-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Pozadí sekundárního textu') }}
+						Pozadí sekundárního textu
 						<select class="colorPickSelector" id="secondary-text-background-color"></select>
 					</div>
 					
 					<div id="secondary-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Sekundární text') }}
+						Sekundární text
 						<select class="colorPickSelector" id="secondary-text-color"></select>
 					</div>
 					
 					<div id="terciary-text-background-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Pozadí terciárního textu') }}
+						Pozadí terciárního textu
 						<select class="colorPickSelector" id="terciary-text-background-color"></select>
 					</div>
 					
 					<div id="terciary-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Terciární text') }}
+						Terciární text
 						<select class="colorPickSelector" id="terciary-text-color"></select>
 					</div>
 					
 					<div id="primary-text-highlight-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Zvýraznění primárního textu') }}
+						Zvýraznění primárního textu
 						<select class="colorPickSelector" id="primary-text-highlight-color"></select>
 					</div>
 					<div id="secondary-text-highlight-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Zvýraznění sekundárního textu') }}
+						Zvýraznění sekundárního textu
 						<select class="colorPickSelector" id="secondary-text-highlight-color"></select>
 					</div>
 					
 					<div id="reaction-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Text u reakcí') }}
+						Text u reakcí
 						<select class="colorPickSelector" id="reaction-text-color"></select>
 					</div>
 					
 					<div id="qr-code-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('QR Kód') }}
+						QR Kód
 						<select class="colorPickSelector" id="qr-code-color"></select>
 					</div>
 					
 					<div id="quote-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Uvozovky') }}
+						Uvozovky
 						<select class="colorPickSelector" id="quote-color"></select>
 					</div>
 					
 					<div id="requester-text-color-wrapper" class="color-picker-wrapper">
-						{{ gettext('Zadavatel a zpracovatel') }}
+						Zadavatel a zpracovatel
 						<select class="colorPickSelector" id="requester-text-color"></select>
 					</div>
 				</section>
 
-				<h3>{{ gettext('Pokročilé nastavení') }}</h3>
+				<h3>Pokročilé nastavení</h3>
 				<input
 					type="number"
 					id="resolution"
-					placeholder="{{ gettext('Rozlišení, v pixelech - běžně 2000') }}"
+					placeholder="Rozlišení, v pixelech - běžně 2000"
 				>
 			</section>
 		</main>
diff --git a/generator/views/concept.py b/generator/views/concept.py
index fbbb8f2b452f7bdf7cf75b461f3808add4c11ef4..bf3e63da12c447da6a1f33244df6f57c2c3a7ca2 100644
--- a/generator/views/concept.py
+++ b/generator/views/concept.py
@@ -7,7 +7,6 @@ import uuid
 
 import werkzeug.exceptions
 import flask
-import flask_httpauth
 import sqlalchemy
 
 from .. import authentication, database
diff --git a/generator/views/generator.py b/generator/views/generator.py
index 5a790e6d205160e0fc787ad33a93d94010f762a6..7c40b7bdf40d0a2b058c9e190a9e25cf4760bd6b 100644
--- a/generator/views/generator.py
+++ b/generator/views/generator.py
@@ -5,7 +5,6 @@ import typing
 
 import werkzeug.exceptions
 import flask
-import flask_httpauth
 
 from .. import authentication
 
@@ -20,16 +19,8 @@ generator_blueprint = flask.Blueprint(
 	__name__
 )
 
-auth = flask_httpauth.HTTPBasicAuth()
-
-
-@auth.verify_password
-def verify_password(username, password):
-	if username == "papouch" and password == "jestetonepouzivejte":
-		return "papouch"
 
 @generator_blueprint.route("/")
-@auth.login_required
 @authentication.authenticate_via_jwt
 def view() -> typing.Tuple[flask.Response, int]:
 	return flask.render_template("generator.html"), http.client.OK
diff --git a/generator/views/oidc.py b/generator/views/oidc.py
index fb4adbe3608f7de2108c7a9149a43fd117894a05..2c4d3b6796e5b82acb823170f7df338b7bb7e2cc 100644
--- a/generator/views/oidc.py
+++ b/generator/views/oidc.py
@@ -6,6 +6,7 @@
 """
 
 import datetime
+import os
 
 import authlib.integrations.requests_client
 import authlib.jose
@@ -34,8 +35,16 @@ def login() -> flask.Response:
 	:returns: A response with the redirect URL.
 	"""
 
+	oidc_url = flask.current_app.config["OIDC_BASE_URL"]
+
 	with authlib.integrations.requests_client.OAuth2Session(
-		**flask.current_app.config["OIDC"]
+		client_id=os.environ["OIDC_CLIENT_ID"],
+		client_secret=os.environ["OIDC_CLIENT_SECRET"],
+		authorization_endpoint=f"{oidc_url}protocol/openid-connect/auth",
+		token_endpoint=f"{oidc_url}protocol/openid-connect/token",
+		userinfo_endpoint=f"{oidc_url}protocol/openid-connect/userinfo",
+		jwks_uri=f"{oidc_url}protocol/openid-connect/certs",
+		scope="openid"
 	) as session:
 		url, state = session.create_authorization_url(
 			session.metadata["authorization_endpoint"],
@@ -61,8 +70,16 @@ def authenticate() -> flask.Response:
 	if code is None or state is None:
 		raise werkzeug.exceptions.BadRequest
 
+	oidc_url = flask.current_app.config["OIDC_BASE_URL"]
+
 	with authlib.integrations.requests_client.OAuth2Session(
-		**flask.current_app.config["OIDC"]
+		client_id=os.environ["OIDC_CLIENT_ID"],
+		client_secret=os.environ["OIDC_CLIENT_SECRET"],
+		authorization_endpoint=f"{oidc_url}protocol/openid-connect/auth",
+		token_endpoint=f"{oidc_url}protocol/openid-connect/token",
+		userinfo_endpoint=f"{oidc_url}protocol/openid-connect/userinfo",
+		jwks_uri=f"{oidc_url}protocol/openid-connect/certs",
+		scope="openid"
 	) as session:
 		try:
 			token = session.fetch_token(