From e5d9ee98a548e2b863104e52eb2bc309b1336179 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Mon, 31 Oct 2022 18:08:33 +0100 Subject: add internationalization and polish translations --- src/hydrilla_website/app.py | 55 +++- src/hydrilla_website/common_jinja_templates | 2 +- .../locales/en_US/LC_MESSAGES/messages.po | 333 ++++++++++++++++++- .../locales/pl_PL/LC_MESSAGES/messages.po | 365 +++++++++++++++++++++ .../templates/downloads.html.jinja | 140 ++++---- src/hydrilla_website/templates/index.html.jinja | 142 ++++---- 6 files changed, 869 insertions(+), 168 deletions(-) create mode 100644 src/hydrilla_website/locales/pl_PL/LC_MESSAGES/messages.po (limited to 'src/hydrilla_website') diff --git a/src/hydrilla_website/app.py b/src/hydrilla_website/app.py index a86c22a..289bf76 100644 --- a/src/hydrilla_website/app.py +++ b/src/hydrilla_website/app.py @@ -30,6 +30,8 @@ import typing as t from pathlib import Path import flask +import werkzeug +import itsdangerous import jinja2 from . import common_jinja_templates @@ -38,26 +40,34 @@ from . import common_jinja_templates here = Path(__file__).resolve().parent -supported_languages = {'en_US'} +supported_locales = {'en_US', 'pl_PL'} default_locale = 'en_US' def choose_locale() -> None: app = t.cast(HydrillaWebsite, flask.current_app) - best_locale_match = flask.request.accept_languages.best_match( - supported_languages, - default = default_locale - ) - if best_locale_match is None: - app._hydrilla_request_locale = default_locale + + user_chosen_locale = flask.request.cookies.get('chosen-locale') + if user_chosen_locale not in supported_locales: + user_chosen_locale = None + + if user_chosen_locale is None: + best_locale_match = flask.request.accept_languages.best_match( + supported_locales, + default = default_locale + ) + if best_locale_match is None: + app._hydrilla_request_locale = default_locale + else: + app._hydrilla_request_locale = best_locale_match else: - app._hydrilla_request_locale = best_locale_match + app._hydrilla_request_locale = user_chosen_locale translations = gettext.translation( - 'messages', - localedir = here / 'locales', - languages = [app._hydrilla_request_locale] - ) + 'messages', + localedir = here / 'locales', + languages = [app._hydrilla_request_locale] + ) app.jinja_env.install_gettext_translations(translations) @@ -90,7 +100,10 @@ website_app = HydrillaWebsite() @website_app.route('/', methods=['GET']) def main() -> str: - return flask.render_template('index.html.jinja') + return flask.render_template( + 'index.html.jinja', + locale_serializer = itsdangerous.Serializer(secret, salt='set_locale') + ) @website_app.route('/favicon.ico', methods=['GET']) def favicon() -> str: @@ -99,3 +112,19 @@ def favicon() -> str: @website_app.route('/downloads', methods=['GET']) def downloads() -> str: return flask.render_template('downloads.html.jinja') + +@website_app.route('/set-lang', methods=['POST']) +def set_locale() -> werkzeug.Response: + serializer = itsdangerous.Serializer(secret, salt='set_locale') + new_locale = serializer.loads(flask.request.form['lang_code']) + + response = flask.redirect(flask.url_for('main') + '#langs', code=303) + response.set_cookie(key='chosen-locale', value=new_locale, path='/') + + return response + +secret = 'not-so-secret' + +def set_secret(new_secret: str) -> None: + global secret + secret = new_secret diff --git a/src/hydrilla_website/common_jinja_templates b/src/hydrilla_website/common_jinja_templates index 12fc683..6b41482 160000 --- a/src/hydrilla_website/common_jinja_templates +++ b/src/hydrilla_website/common_jinja_templates @@ -1 +1 @@ -Subproject commit 12fc683ba764b32f371ee8d4c75bac4471a388df +Subproject commit 6b414822f00206b83884e7738b1311ab9d7cbf97 diff --git a/src/hydrilla_website/locales/en_US/LC_MESSAGES/messages.po b/src/hydrilla_website/locales/en_US/LC_MESSAGES/messages.po index d4041b2..9f97f6e 100644 --- a/src/hydrilla_website/locales/en_US/LC_MESSAGES/messages.po +++ b/src/hydrilla_website/locales/en_US/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hydrilla_website 0.1.dev0+d20221029\n" "Report-Msgid-Bugs-To: koszko@koszko.org\n" -"POT-Creation-Date: 2022-10-29 13:24+0200\n" +"POT-Creation-Date: 2022-10-31 18:07+0100\n" "PO-Revision-Date: 2022-10-29 13:18+0200\n" "Last-Translator: Wojtek Kosior \n" "Language: en_US\n" @@ -18,17 +18,338 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.0\n" +#: src/hydrilla_website/templates/downloads.html.jinja:23 +msgid "downloads.title" +msgstr "Downloads - Haketilo" + +#: src/hydrilla_website/templates/downloads.html.jinja:47 +msgid "downloads.h_small.files" +msgstr "Files" + +#: src/hydrilla_website/templates/downloads.html.jinja:48 +msgid "downloads.h_small.signify_signatures" +msgstr "Signify signatures" + +#: src/hydrilla_website/templates/downloads.html.jinja:49 +msgid "downloads.h_small.pgp_signatures" +msgstr "PGP signatures" + +#: src/hydrilla_website/templates/downloads.html.jinja:81 +msgid "downloads.pre_release_version" +msgstr "(pre-release version)" + +#: src/hydrilla_website/templates/downloads.html.jinja:83 +msgid "downloads.source_code" +msgstr "source code" + +#: src/hydrilla_website/templates/downloads.html.jinja:85 +msgid "downloads.webextension.chromium_build" +msgstr "Chromium build" + +#: src/hydrilla_website/templates/downloads.html.jinja:86 +msgid "downloads.webextension.mozilla_build" +msgstr "Mozilla build" + +#: src/hydrilla_website/templates/downloads.html.jinja:91 +msgid "downloads.h_big.haketilo_downloads" +msgstr "Haketilo downloads" + +#: src/hydrilla_website/templates/downloads.html.jinja:95 +msgid "downloads.haketilo_downloads.this_page_lists" +msgstr "" +"This page lists releases of Haketilo proxy, Haketilo browser extension " +"(now in maintenance mode) and Hydrilla repository server. Starting with " +"version 3 Haketilo proxy and Hydrilla are distributed together." + +#: src/hydrilla_website/templates/downloads.html.jinja:99 +msgid "downloads.haketilo_downloads.html.all_files_signed_by" +msgstr "" +"All files are cryptographically signed by project maintainer, Wojciech " +"Kosior. Public keys for verification of signatures are the ones from koszko.org. You might want to read the instructions" +" on signature verification." + +#: src/hydrilla_website/templates/downloads.html.jinja:102 +msgid "downloads.haketilo_downloads.h_small.pgp_fingerprint" +msgstr "PGP key fingerprint" + +#: src/hydrilla_website/templates/downloads.html.jinja:109 +msgid "downloads.haketilo_downloads.h_small.html.signify_key" +msgstr "Signify public key" + +#: src/hydrilla_website/templates/downloads.html.jinja:118 +msgid "downloads.h_big.haketilo_and_hydrilla_releases" +msgstr "Haketilo proxy and Hydrilla releases" + +#: src/hydrilla_website/templates/downloads.html.jinja:121 +msgid "downloads.haketilo_and_hydrilla_releases.listed_below_are" +msgstr "" +"Tool releases from version 3 upwards are listed below. Both Haketilo " +"proxy and Hydrilla are included inside." + +#: src/hydrilla_website/templates/downloads.html.jinja:125 +msgid "downloads.haketilo_and_hydrilla_releases.html.repo_is_at" +msgstr "" +"If you're a programmer, you might also want to check the git repository of Hydrilla and " +"Haketilo." + +#: src/hydrilla_website/templates/downloads.html.jinja:131 +msgid "downloads.haketilo_and_hydrilla_releases.html.with_guix_1.3.0-26.fd00ac7" +msgstr "" +"The binary release was made with GNU " +"Guix version 1.3.0-26.fd00ac7." + +#: src/hydrilla_website/templates/downloads.html.jinja:137 +msgid "downloads.haketilo_and_hydrilla_releases.relocatable_x86-64" +msgstr "relocatable standalone binary release for x86-64 GNU/Linux computers" + +#: src/hydrilla_website/templates/downloads.html.jinja:139 +msgid "downloads.haketilo_and_hydrilla_releases.wheel_for_pip" +msgstr "Python wheel for use with pip" + +#: src/hydrilla_website/templates/downloads.html.jinja:147 +msgid "downloads.h_big.old_hydrilla_releases" +msgstr "Old Hydrilla releases" + +#: src/hydrilla_website/templates/downloads.html.jinja:150 +msgid "downloads.old_hydrilla_releases.html.listed_below_are" +msgstr "" +"Hydrilla releases before version 3 are listed below. Those old versions " +"do not yet include the Haketilo proxy. The functionality is split between" +" separate Hydrilla builder and server packages. The latter depends on the former." + +#: src/hydrilla_website/templates/downloads.html.jinja:154 +msgid "downloads.old_hydrilla_releases.html.repo_is_at" +msgstr "" +"If you're a programmer, you might also want to check the git repositories" +" of Hydrilla and Hydrilla builder." + +#: src/hydrilla_website/templates/downloads.html.jinja:203 +msgid "downloads.h_big.webextension" +msgstr "Haketilo WebExtension" + +#: src/hydrilla_website/templates/downloads.html.jinja:206 +msgid "downloads.webextension.listed_below_are" +msgstr "" +"Browser extension releases are listed below. The extension is currently " +"in maintenance mode and is not going to receive new functionalities." + +#: src/hydrilla_website/templates/downloads.html.jinja:210 +msgid "downloads.webextension.html.repo_is_at" +msgstr "" +"If you're a programmer, you might also want to check the git repository of " +"Haketilo browser extension." + #: src/hydrilla_website/templates/index.html.jinja:23 msgid "index.title" msgstr "Haketilo" -#: src/hydrilla_website/templates/index.html.jinja:27 +#: src/hydrilla_website/templates/index.html.jinja:45 +msgid "index.nav.home" +msgstr "Home" + +#: src/hydrilla_website/templates/index.html.jinja:47 +msgid "index.nav.about" +msgstr "About" + +#: src/hydrilla_website/templates/index.html.jinja:49 +msgid "index.nav.manual" +msgstr "Manual" + +#: src/hydrilla_website/templates/index.html.jinja:51 +msgid "index.nav.downloads" +msgstr "Downloads" + +#: src/hydrilla_website/templates/index.html.jinja:53 +msgid "index.nav.get_involved" +msgstr "Get involved" + +#: src/hydrilla_website/templates/index.html.jinja:55 +msgid "index.nav.languages" +msgstr "Languages" + +#: src/hydrilla_website/templates/index.html.jinja:57 +msgid "index.nav.site_sources" +msgstr "Website sources" + +#: src/hydrilla_website/templates/index.html.jinja:66 msgid "index.h_big.taking_back_the_web" -msgstr "Taking back the web with Haketilo" +msgstr "Taking back the Web with Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:72 +msgid "index.h_big.about" +msgstr "About" -#: src/hydrilla_website/templates/website_base.html.jinja:20 +#: src/hydrilla_website/templates/index.html.jinja:76 +msgid "index.about.html.haketilo_is_a_tool" +msgstr "" +"Haketilo is a tool that facilitates viewing websites with their original " +"JavaScript " +"replaced by user-provided scripts. It combines the functionalities of " +"content blocker and user script manager. It can be used with its script " +"repository, Hydrilla." + +#: src/hydrilla_website/templates/index.html.jinja:80 +msgid "index.about.html.haketilo_javascript_trap" +msgstr "" +"One of Haketilo's aims is to address the issues raised in \"The " +"JavaScript trap\". It is being developed with hope that it will make " +"more user-controlled \"Web\" browsing possible." + +#: src/hydrilla_website/templates/index.html.jinja:84 +msgid "index.about.html.haketilo_is_libre_proxy" +msgstr "" +"Haketilo is a free/libre " +"software, TLS-enabled HTTP proxy. As such, it can be used with " +"multiple web browsers, regardless of their native support for some " +"particular addon format." + +#: src/hydrilla_website/templates/index.html.jinja:88 +msgid "index.about.html.haketilo_extension_variant" +msgstr "" +"A browser extension variant of Haketilo also exists and is compatible " +"with Firefox- and " +"Chromium-based" +" browsers that support the Manifest V2 WebExtension format. The browser " +"extension is currently in maintenance mode and does not receive new " +"features." + +#: src/hydrilla_website/templates/index.html.jinja:91 +msgid "index.about.h_medium.available_packages" +msgstr "Available packages" + +#: src/hydrilla_website/templates/index.html.jinja:94 +msgid "index.about.available_packages.html" +msgstr "" +"Haketilo can be used both for simple script-blocking and for altering the" +" ways websites are viewed. Its official Hydrilla repository provides a " +"collection of freely-licensed packages that can make several " +"websites viewable again after their original JavaScript is blocked from " +"executing." + +#: src/hydrilla_website/templates/index.html.jinja:97 +msgid "index.about.h_medium.credits" +msgstr "Credits" + +#: src/hydrilla_website/templates/index.html.jinja:100 +msgid "index.about.credits.special_thanks_to" +msgstr "" +"Those who knowingly or unknowingly helped the project in some way, " +"receive special thanks." + +#: src/hydrilla_website/templates/index.html.jinja:105 +msgid "index.about.credits.list_entry.html.nlnet" +msgstr "" +"the NLnet Foundation with the NGI0 Programme for funding the development " +"of Haketilo in 2021 and 2022" + +#: src/hydrilla_website/templates/index.html.jinja:108 +msgid "index.about.credits.list_entry.html.jahoti" +msgstr "" +"Jahoti for contributions in " +"the early stages of Haketilo browser extension" + +#: src/hydrilla_website/templates/index.html.jinja:111 +msgid "index.about.credits.list_entry.html.nick" +msgstr "" +"Nicholas Johnson for preparing a " +"presentation about Haketilo for LibrePlanet 2022" + +#: src/hydrilla_website/templates/index.html.jinja:114 +msgid "index.about.credits.list_entry.html.david_lyons" +msgstr "" +"David Lyons " +"for his hatchet graphic that is being used in Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:117 +msgid "index.about.credits.list_entry.html.mitmproxy" +msgstr "" +"the creators of mitmproxy which " +"serves as a base for Haketilo proxy" + +#: src/hydrilla_website/templates/index.html.jinja:120 +msgid "index.about.credits.list_entry.html.pallets" +msgstr "" +"the the Pallets Projects for" +" creating Flask and other tools that are used extensively in this very " +"website as well as in Haketilo&Hydrilla" + +#: src/hydrilla_website/templates/index.html.jinja:126 +msgid "index.h_big.user_manual" +msgstr "User manual" + +#: src/hydrilla_website/templates/index.html.jinja:129 +msgid "index.user_manual.html.haketilo_wiki_and_inline_doc" +msgstr "" +"Information about installation, running and some technical aspects of " +"Haketilo operation can be found on project's" +" Redmine-powered wiki. Additional help is provided by Haketilo " +"proxy's builtin documentation which can be viewed from the tool itself." + +#: src/hydrilla_website/templates/index.html.jinja:133 +msgid "index.user_manual.html.hydrilla_wiki" +msgstr "" +"The documentation of Hydrilla repository server for use with Haketilo can" +" be found on on " +"project's wiki." + +#: src/hydrilla_website/templates/index.html.jinja:138 +msgid "index.h_big.get_involved" +msgstr "Get involved" + +#: src/hydrilla_website/templates/index.html.jinja:141 +msgid "index.get_involved.html.project_redmine_instance" +msgstr "" +"Haketilo development currently occurs on project's Redmine instance." +" Individuals and groups are more than welcome to" + +#: src/hydrilla_website/templates/index.html.jinja:146 +msgid "index.get_involved.list_entry.provide_feedback" +msgstr "provide feedback and suggestions," + +#: src/hydrilla_website/templates/index.html.jinja:149 +msgid "index.get_involved.list_entry.report_bugs" +msgstr "make bug reports," + +#: src/hydrilla_website/templates/index.html.jinja:152 +msgid "index.get_involved.list_entry.share_custom_scripts" +msgstr "share custom scripts for websites," + +#: src/hydrilla_website/templates/index.html.jinja:155 +msgid "index.get_involved.list_entry.provide_translations" +msgstr "provide translations and" + +#: src/hydrilla_website/templates/index.html.jinja:158 +msgid "index.get_involved.list_entry.contribute_code" +msgstr "contribute code to Haketilo and Hydrilla." + +#: src/hydrilla_website/templates/index.html.jinja:163 +msgid "index.get_involved.html.email_maintainer" +msgstr "" +"One can also email the maintainer of Haketilo, Wojtek Kosior, directly at" +" koszko@koszko.org." + +#: src/hydrilla_website/templates/index.html.jinja:168 +msgid "index.h_big.choose_language" +msgstr "Choose your language" + +#: src/hydrilla_website/templates/website_base.html.jinja:19 msgid "base.title.haketilo" msgstr "Haketilo" -msgid "index.h_big.haketilo_downloads" -msgstr "Haketilo downloads" diff --git a/src/hydrilla_website/locales/pl_PL/LC_MESSAGES/messages.po b/src/hydrilla_website/locales/pl_PL/LC_MESSAGES/messages.po new file mode 100644 index 0000000..360c99b --- /dev/null +++ b/src/hydrilla_website/locales/pl_PL/LC_MESSAGES/messages.po @@ -0,0 +1,365 @@ +# SPDX-License-Identifier: CC0-1.0 +# Polish translations for Hydrilla&Haketilo website. +# +# Copyright (C) 2021-2022 Wojtek Kosior +# Available under the terms of Creative Commons Zero v1.0 Universal. +msgid "" +msgstr "" +"Project-Id-Version: hydrilla_website 0.1.dev0+d20221029\n" +"Report-Msgid-Bugs-To: koszko@koszko.org\n" +"POT-Creation-Date: 2022-10-31 18:07+0100\n" +"PO-Revision-Date: 2022-10-29 13:18+0200\n" +"Last-Translator: Wojtek Kosior \n" +"Language: pl_PL\n" +"Language-Team: pl_PL \n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.9.0\n" + +#: src/hydrilla_website/templates/downloads.html.jinja:23 +msgid "downloads.title" +msgstr "Do pobrania - Haketilo" + +#: src/hydrilla_website/templates/downloads.html.jinja:47 +msgid "downloads.h_small.files" +msgstr "Pliki" + +#: src/hydrilla_website/templates/downloads.html.jinja:48 +msgid "downloads.h_small.signify_signatures" +msgstr "Podpisy Signify" + +#: src/hydrilla_website/templates/downloads.html.jinja:49 +msgid "downloads.h_small.pgp_signatures" +msgstr "Podpisy PGP" + +#: src/hydrilla_website/templates/downloads.html.jinja:81 +msgid "downloads.pre_release_version" +msgstr "(wersja przedpremierowa)" + +#: src/hydrilla_website/templates/downloads.html.jinja:83 +msgid "downloads.source_code" +msgstr "kod źródłowy" + +#: src/hydrilla_website/templates/downloads.html.jinja:85 +msgid "downloads.webextension.chromium_build" +msgstr "wariant spreparowany pod Chromium" + +#: src/hydrilla_website/templates/downloads.html.jinja:86 +msgid "downloads.webextension.mozilla_build" +msgstr "wariant spreparowany pod Mozillę" + +#: src/hydrilla_website/templates/downloads.html.jinja:91 +msgid "downloads.h_big.haketilo_downloads" +msgstr "Do pobrania" + +#: src/hydrilla_website/templates/downloads.html.jinja:95 +msgid "downloads.haketilo_downloads.this_page_lists" +msgstr "" +"Niniejsza strona zawiera spis wydań proxy Haketilo i rozszerzenia " +"przeglądarkowego Haketilo (obecnie w stanie wyłącznie utrzymywania) i " +"serwera repozytorium Hydrilla. Począwszy od wersji 3-ciej proxy Haketilo " +"i Hydrilla są rozpowszechniane razem." + +#: src/hydrilla_website/templates/downloads.html.jinja:99 +msgid "downloads.haketilo_downloads.html.all_files_signed_by" +msgstr "" +"Wszystkie pliki są podpisane kryptograficznie przez kierownika projektu, " +"Wojtka Kosiora. Klucze publiczne do weryfikacji podpisów dostępne są na " +"jego stronie koszko.org. Zainteresować" +" Cię mogą tak także instrukcje" +" dotyczące weryfikacji podpisów." + +#: src/hydrilla_website/templates/downloads.html.jinja:102 +msgid "downloads.haketilo_downloads.h_small.pgp_fingerprint" +msgstr "Odcisk klucza PGP" + +#: src/hydrilla_website/templates/downloads.html.jinja:109 +msgid "downloads.haketilo_downloads.h_small.html.signify_key" +msgstr "Odcisk klucza Signify" + +#: src/hydrilla_website/templates/downloads.html.jinja:118 +msgid "downloads.h_big.haketilo_and_hydrilla_releases" +msgstr "Wydania Haketilo proxy and Hydrilli" + +#: src/hydrilla_website/templates/downloads.html.jinja:121 +msgid "downloads.haketilo_and_hydrilla_releases.listed_below_are" +msgstr "" +"Wydania ninejszych narzędzi od wersji 3-ciej wzwyż są wypisane poniżej. " +"Zawarte w nich są zarówno proxy Haketilo, jak i Hydrilla." + +#: src/hydrilla_website/templates/downloads.html.jinja:125 +msgid "downloads.haketilo_and_hydrilla_releases.html.repo_is_at" +msgstr "" +"Jeśli jesteś programistą, możesz być także zainteresowany zajrzeniem na " +"repozytorium gitowe Hydrilli " +"i Haketilo." + +#: src/hydrilla_website/templates/downloads.html.jinja:131 +msgid "downloads.haketilo_and_hydrilla_releases.html.with_guix_1.3.0-26.fd00ac7" +msgstr "" +"Wydanie binarne zostało przygotowane z wykorzystaniem GNU Guix w wersji 1.3.0-26.fd00ac7." + +#: src/hydrilla_website/templates/downloads.html.jinja:137 +msgid "downloads.haketilo_and_hydrilla_releases.relocatable_x86-64" +msgstr "" +"przenośne, wolnostojące wydanie binarne na komputery x86-64 działające " +"pod GNU/Linuksem" + +#: src/hydrilla_website/templates/downloads.html.jinja:139 +msgid "downloads.haketilo_and_hydrilla_releases.wheel_for_pip" +msgstr "Python'owy \"wheel\" do instalacji pip'em" + +#: src/hydrilla_website/templates/downloads.html.jinja:147 +msgid "downloads.h_big.old_hydrilla_releases" +msgstr "Stare wydania Hydrilli" + +#: src/hydrilla_website/templates/downloads.html.jinja:150 +msgid "downloads.old_hydrilla_releases.html.listed_below_are" +msgstr "" +"Wydania Hydrilli sprzed wersji 3-ciej są wypisane poniżej. Te starsze " +"wersje nie zawierają w sobie jeszcze proxy Haketilo. Funkcjonalności są " +"podzielone pomiędzy osobne pakiety builder'a " +"i serwera Hydrilli. Ten drugi zależy od tego " +"pierwszego." + +#: src/hydrilla_website/templates/downloads.html.jinja:154 +msgid "downloads.old_hydrilla_releases.html.repo_is_at" +msgstr "" +"Jeśli jesteś programistą, możesz być także zainteresowany zajrzeniem na " +"repozytoria gitowe Hydrilli i Hydrilla builder'a." + +#: src/hydrilla_website/templates/downloads.html.jinja:203 +msgid "downloads.h_big.webextension" +msgstr "Haketilo WebExtension" + +#: src/hydrilla_website/templates/downloads.html.jinja:206 +msgid "downloads.webextension.listed_below_are" +msgstr "" +"Wydania rozszerzenia przeglądarkowego są wypisane poniżej. Rozszerzenie " +"jest obecnie w stanie wyłącznie utrzymania i nie będą do niego dodawane " +"nowe funkcjonalności." + +#: src/hydrilla_website/templates/downloads.html.jinja:210 +msgid "downloads.webextension.html.repo_is_at" +msgstr "" +"Jeśli jesteś programistą, możesz być także zainteresowany zajrzeniem na " +"repozytorium gitowe" +" rozszerzenia przeglądarkowego Haketilo." + +#: src/hydrilla_website/templates/index.html.jinja:23 +msgid "index.title" +msgstr "Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:45 +msgid "index.nav.home" +msgstr "Start" + +#: src/hydrilla_website/templates/index.html.jinja:47 +msgid "index.nav.about" +msgstr "O Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:49 +msgid "index.nav.manual" +msgstr "Podręcznik" + +#: src/hydrilla_website/templates/index.html.jinja:51 +msgid "index.nav.downloads" +msgstr "Do pobrania" + +#: src/hydrilla_website/templates/index.html.jinja:53 +msgid "index.nav.get_involved" +msgstr "Zaangażuj się" + +#: src/hydrilla_website/templates/index.html.jinja:55 +msgid "index.nav.languages" +msgstr "Języki" + +#: src/hydrilla_website/templates/index.html.jinja:57 +msgid "index.nav.site_sources" +msgstr "Kod źródłowy strony" + +#: src/hydrilla_website/templates/index.html.jinja:66 +msgid "index.h_big.taking_back_the_web" +msgstr "Odzyskujemy kontrolę nad siecią z Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:72 +msgid "index.h_big.about" +msgstr "O Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:76 +msgid "index.about.html.haketilo_is_a_tool" +msgstr "" +"Haketilo to narzędzie, które pozwala na zastępowanie oryginalnego kodu JavaScript " +"przeglądanych stron skryptami dostarczonymi przez użytkownika. Łączy ono " +"w sobie funkcjonalności blokera i menadżera skryptów. Może być używane " +"razem ze swoim repozytorium skryptów, Hydrillą." + +#: src/hydrilla_website/templates/index.html.jinja:80 +msgid "index.about.html.haketilo_javascript_trap" +msgstr "" +"Jednym z celów Haketilo jest zaradzenie problemom zarysowanym w \"Pułapce " +"JavaScript'u\". Jest rozwijane z nadzieją, że umożliwi przeglądanie " +"sieci w sposób bardziej kotrolowany przez użytkownika." + +#: src/hydrilla_website/templates/index.html.jinja:84 +msgid "index.about.html.haketilo_is_libre_proxy" +msgstr "" +"Haketilo to wspierające protokół TLS proxy HTTP będące wolnym " +"oprogramowaniem. Jako takie, może być używane z wieloma " +"przeglądarkami, niezależnie od ich własnego wsparcia dla jakiegoś " +"konkretnego formatu rozszerzeń." + +#: src/hydrilla_website/templates/index.html.jinja:88 +msgid "index.about.html.haketilo_extension_variant" +msgstr "" +"Istnieje również wariant Haketilo będący rozszerzeniem przeglądarkowym i " +"wpółpracuje on z przeglądarkami opartymi na Firefox i Chromium, które " +"wspierają format Manifest V2 rozszerzeń WebExtension. Rozszerzenie " +"przeglądarkowe jest obecnie w trybie wyłącznie utrzymania i nie dostaje " +"nowych funkcjonalności." + +#: src/hydrilla_website/templates/index.html.jinja:91 +msgid "index.about.h_medium.available_packages" +msgstr "Dostępne pakiety" + +#: src/hydrilla_website/templates/index.html.jinja:94 +msgid "index.about.available_packages.html" +msgstr "" +"Haketilo może być użyte zarówno do prostego blokowania skryptów, jak i do" +" wprowadzania zmian na wyświetlanych stronach. Jego oficjalne " +"repozytorium Hydrilli oferuje kolekcję dostępnych na wolnych" +" licencjach pakietów, które mogą uczynić niektóre strony na powrót " +"używalnymi po tym, jak wykonywanie ich oryginalnego JavaScript'u zostanie" +" zablokowane." + +#: src/hydrilla_website/templates/index.html.jinja:97 +msgid "index.about.h_medium.credits" +msgstr "Podziękowania" + +#: src/hydrilla_website/templates/index.html.jinja:100 +msgid "index.about.credits.special_thanks_to" +msgstr "" +"Ci, którzy świadomie lub nie przyczynili się do rozwoju projektu, " +"otrzymują szczególny wyraz uznania." + +#: src/hydrilla_website/templates/index.html.jinja:105 +msgid "index.about.credits.list_entry.html.nlnet" +msgstr "" +"Foundacja NLnet z Programem NGI0 za fundowanie rozwoju " +"Haketilo w latach 2021 i 2022" + +#: src/hydrilla_website/templates/index.html.jinja:108 +msgid "index.about.credits.list_entry.html.jahoti" +msgstr "" +"Jahoti za wkład we wczesnych " +"stadiach rozwoju rozszerzenia przeglądarkowego Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:111 +msgid "index.about.credits.list_entry.html.nick" +msgstr "" +"Nicholas Johnson za przygotowanie " +"prezentacji o Haketilo na konferencji " +"LibrePlanet 2022" + +#: src/hydrilla_website/templates/index.html.jinja:114 +msgid "index.about.credits.list_entry.html.david_lyons" +msgstr "" +"David Lyons za" +" jego grafikę siekiery, która jest wykorzystywana w Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:117 +msgid "index.about.credits.list_entry.html.mitmproxy" +msgstr "" +"twórcy mitmproxy, które stanowi " +"bazę dla proxy Haketilo" + +#: src/hydrilla_website/templates/index.html.jinja:120 +msgid "index.about.credits.list_entry.html.pallets" +msgstr "" +"Pallets Projects za " +"stworzenie Flask'a i innych narzędzi, które używane są w wysokim stopniu " +"zarówno przez tą stronę internetową, jak i przez Haketilo oraz Hydrillę" + +#: src/hydrilla_website/templates/index.html.jinja:126 +msgid "index.h_big.user_manual" +msgstr "Podręcznik użytkownika" + +#: src/hydrilla_website/templates/index.html.jinja:129 +msgid "index.user_manual.html.haketilo_wiki_and_inline_doc" +msgstr "" +"Informacje na temat instalacji, uruchamiania i niektórych technicznych " +"aspektów Haketilo można znaleźć na wiki " +"projektu zasilanej przez Redmine. Dodakową pomoc stanowi wbudowana w " +"proxy Haketilo dokumentacja, którą można wyświetlać wewnątrz narzędzia." + +#: src/hydrilla_website/templates/index.html.jinja:133 +msgid "index.user_manual.html.hydrilla_wiki" +msgstr "" +"Dokumentację serwera repozytorium Hydrilli używanego razem z Haketilo " +"można również znaleźć na wiki " +"projektu." + +#: src/hydrilla_website/templates/index.html.jinja:138 +msgid "index.h_big.get_involved" +msgstr "Zaangażuj się" + +#: src/hydrilla_website/templates/index.html.jinja:141 +msgid "index.get_involved.html.project_redmine_instance" +msgstr "" +"Rozwojanie Haketilo obecnie odbywa się na instancji Redmine projektu." +" Mile widziane są" + +#: src/hydrilla_website/templates/index.html.jinja:146 +msgid "index.get_involved.list_entry.provide_feedback" +msgstr "feedback i sugestie," + +#: src/hydrilla_website/templates/index.html.jinja:149 +msgid "index.get_involved.list_entry.report_bugs" +msgstr "raporty o błędach," + +#: src/hydrilla_website/templates/index.html.jinja:152 +msgid "index.get_involved.list_entry.share_custom_scripts" +msgstr "dzielenie się zastępczymi skryptami dla stron," + +#: src/hydrilla_website/templates/index.html.jinja:155 +msgid "index.get_involved.list_entry.provide_translations" +msgstr "tłumaczenia i" + +#: src/hydrilla_website/templates/index.html.jinja:158 +msgid "index.get_involved.list_entry.contribute_code" +msgstr "wkład w tworzenie Haketilo i Hydrilli." + +#: src/hydrilla_website/templates/index.html.jinja:163 +msgid "index.get_involved.html.email_maintainer" +msgstr "" +"Można również kontaktować się z twórcą Haketilo, Wojtkiem, drogą mailową " +"bezpośrednio na adres koszko@koszko.org." + +#: src/hydrilla_website/templates/index.html.jinja:168 +msgid "index.h_big.choose_language" +msgstr "Wybierz swój język" + +#: src/hydrilla_website/templates/website_base.html.jinja:19 +msgid "base.title.haketilo" +msgstr "Haketilo" + diff --git a/src/hydrilla_website/templates/downloads.html.jinja b/src/hydrilla_website/templates/downloads.html.jinja index ce5dde3..d0e51ff 100644 --- a/src/hydrilla_website/templates/downloads.html.jinja +++ b/src/hydrilla_website/templates/downloads.html.jinja @@ -44,10 +44,14 @@ code in a proprietary work, I am not going to enforce this in court. {% set downloads_base = 'https://hydrilla.koszko.org/downloads/' %} +{% set files_label_text = _('downloads.h_small.files') %} +{% set signify_sigs_label_text = _('downloads.h_small.signify_signatures') %} +{% set pgp_sigs_label_text = _('downloads.h_small.pgp_signatures') %} + {% macro list_files( filenames_comments, - label_text = 'Files', + label_text = files_label_text, filename_suffix = '', include_comments = true ) @@ -70,39 +74,39 @@ code in a proprietary work, I am not going to enforce this in court. {% macro files_and_sigs_lists(filenames_comments) %} {{ list_files(filenames_comments) }} - {{ list_files(filenames_comments, 'Signify signatures', '.sig', false) }} - {{ list_files(filenames_comments, 'PGP signatures', '.asc', false) }} + {{ list_files(filenames_comments, signify_sigs_label_text, '.sig', false) }} + {{ list_files(filenames_comments, pgp_sigs_label_text, '.asc', false) }} {% endmacro %} +{% set pre_release_note = _('downloads.pre_release_version') %} + +{% set source_code_note = _('downloads.source_code') %} + +{% set chromium_build_note = _('downloads.webextension.chromium_build') %} +{% set mozilla_build_note = _('downloads.webextension.mozilla_build') %} + {% block body %} {% call subpage('') %}

- {{ _('index.h_big.haketilo_downloads') }} + {{ _('downloads.h_big.haketilo_downloads') }}

- This page lists releases of Haketilo proxy, Haketilo browser extension - (now in maintenance mode) and Hydrilla repository server. Starting with - version 3, Haketilo proxy and Hydrilla are distributed together. + {{ _('downloads.haketilo_downloads.this_page_lists') }}

- All files are cryptographically signed by project maintainer, Wojciech - Kosior. Public keys for verification of signatures are the ones from - koszko.org. - You might want to read the - instructions - on signature verification. + {{ _('downloads.haketilo_downloads.html.all_files_signed_by')|safe }}

- {{ label('PGP key fingerprint') }} + {{ label(_('downloads.haketilo_downloads.h_small.pgp_fingerprint')) }}

E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A

{% call label() %} - - Signify public key + + {{ _('downloads.haketilo_downloads.h_small.html.signify_key')|safe }} {% endcall %}

@@ -111,56 +115,46 @@ code in a proprietary work, I am not going to enforce this in court. {% endcall %} {% call subpage('proxy') %} -

Haketilo proxy and Hydrilla releases

+

{{ _('downloads.h_big.haketilo_and_hydrilla_releases') }}

- Tool releases from version 3 upwards are listed below. Both Haketilo proxy - and Hydrilla are included inside. + {{ _('downloads.haketilo_and_hydrilla_releases.listed_below_are') }}

- If you're a programmer, you might also want to check the - git repository of Hydrilla and Haketilo. + {{ _('downloads.haketilo_and_hydrilla_releases.html.repo_is_at')|safe }}

-

Version 3.0-beta1 (pre-release version)

+

3.0-beta1 {{ pre_release_note }}

- The binary release was made with - GNU Guix version - 1.3.0-26.fd00ac7. + {{ _('downloads.haketilo_and_hydrilla_releases.html.with_guix_1.3.0-26.fd00ac7')|safe }}

{{ files_and_sigs_lists([ ('haketilo-and-hydrilla-bin-3.0b1-x86_64.tar.gz', - 'relocatable standalone binary release for x86-64 GNU/Linux computers'), + _('downloads.haketilo_and_hydrilla_releases.relocatable_x86-64')), ('hydrilla-3.0b1-py3-none-any.whl', - 'Python wheel for use with pip'), + _('downloads.haketilo_and_hydrilla_releases.wheel_for_pip')), ('haketilo-and-hydrilla-3.0b1.tar.gz', - 'source code') + source_code_note) ]) }} {% endcall %} {% call subpage('old-hydrilla') %} -

Old Hydrilla releases

+

{{ _('downloads.h_big.old_hydrilla_releases') }}

- Hydrilla releases before version 3 are listed below. Those old versions - do not yet include the Haketilo proxy. The functionality is split between - separate Hydrilla builder and - server packages. The latter depends on the - former. + {{ _('downloads.old_hydrilla_releases.html.listed_below_are')|safe }}

- If you're a programmer, you might also want to check the git repositories - of Hydrilla and - Hydrilla builder. + {{ _('downloads.old_hydrilla_releases.html.repo_is_at')|safe }}

-

Version 1.1-beta1 (pre-release version)

+

1.1-beta1 {{ pre_release_note }}

{{ files_and_sigs_lists([ @@ -171,7 +165,7 @@ code in a proprietary work, I am not going to enforce this in court. ]) }} -

Version 1.0

+

1.0

{{ files_and_sigs_lists([ @@ -182,7 +176,7 @@ code in a proprietary work, I am not going to enforce this in court. ]) }} -

Version - 1.0-beta2 (pre-release version)

+

1.0-beta2 {{ pre_release_note }}

{{ files_and_sigs_lists([ @@ -193,7 +187,7 @@ code in a proprietary work, I am not going to enforce this in court. ]) }} -

Version - 1.0-beta1 (pre-release version)

+

1.0-beta1 {{ pre_release_note }}

{{ files_and_sigs_lists([ @@ -206,85 +200,83 @@ code in a proprietary work, I am not going to enforce this in court. {% endcall %} {% call subpage('webextension') %} -

Haketilo WebExtension

+

{{ _('downloads.h_big.webextension') }}

- Browser extension releases are listed below. The extension is currently in - maintenance mode and is not going to receive new functionalities. + {{ _('downloads.webextension.listed_below_are') }}

- If you're a programmer, you might also want to check the - git repository of Haketilo browser extension. + {{ _('downloads.webextension.html.repo_is_at')|safe }}

-

Version 2.0.1

+

2.0.1

{{ files_and_sigs_lists([ - ('haketilo-2.0.1.zip', 'Chromium build'), - ('haketilo-2.0.1.xpi', 'Mozilla build'), - ('haketilo-2.0.1.tar.gz', 'source code') + ('haketilo-2.0.1.zip', chromium_build_note), + ('haketilo-2.0.1.xpi', mozilla_build_note), + ('haketilo-2.0.1.tar.gz', source_code_note) ]) }} -

Version 2.0

+

2.0

{{ files_and_sigs_lists([ - ('haketilo-2.0.zip', 'Chromium build'), - ('haketilo-2.0.xpi', 'Mozilla build'), - ('haketilo-2.0.tar.gz', 'source code') + ('haketilo-2.0.zip', chromium_build_note), + ('haketilo-2.0.xpi', mozilla_build_note), + ('haketilo-2.0.tar.gz', source_code_note) ]) }} -

Version 2.0-beta1 (pre-release version)

+

2.0-beta1 {{ pre_release_note }}

{{ files_and_sigs_lists([ - ('haketilo-2.0b1.zip', 'Chromium build'), - ('haketilo-2.0b1.xpi', 'Mozilla build'), - ('haketilo-2.0b1.tar.gz', 'source code') + ('haketilo-2.0b1.zip', chromium_build_note), + ('haketilo-2.0b1.xpi', mozilla_build_note), + ('haketilo-2.0b1.tar.gz', source_code_note) ]) }} -

Version 1.0

+

1.0

{{ files_and_sigs_lists([ - ('haketilo-1.0.zip', 'Chromium build'), - ('haketilo-1.0.mozilla-signed.xpi', 'Mozilla build'), - ('haketilo-1.0.tar.gz', 'source code') + ('haketilo-1.0.zip', chromium_build_note), + ('haketilo-1.0.mozilla-signed.xpi', mozilla_build_note), + ('haketilo-1.0.tar.gz', source_code_note) ]) }} -

Version 1.0-beta3 (pre-release version)

+

1.0-beta3 {{ pre_release_note }}

{{ files_and_sigs_lists([ - ('haketilo-1.0b3.zip', 'Chromium build'), - ('haketilo-1.0b3.xpi', 'Mozilla build'), - ('haketilo-1.0b3.tar.gz', 'source code') + ('haketilo-1.0b3.zip', chromium_build_note), + ('haketilo-1.0b3.xpi', mozilla_build_note), + ('haketilo-1.0b3.tar.gz', source_code_note) ]) }} -

Version 1.0-beta2 (pre-release version)

+

1.0-beta2 {{ pre_release_note }}

{{ files_and_sigs_lists([ - ('haketilo-1.0b2.zip', 'Chromium build'), - ('haketilo-1.0b2.xpi', 'Mozilla build'), - ('haketilo-1.0b2.tar.gz', 'source code') + ('haketilo-1.0b2.zip', chromium_build_note), + ('haketilo-1.0b2.xpi', mozilla_build_note), + ('haketilo-1.0b2.tar.gz', source_code_note) ]) }} -

Version 1.0-beta1 (pre-release version)

+

1.0-beta1 {{ pre_release_note }}

{{ files_and_sigs_lists([ - ('haketilo-1.0b1.zip', 'Chromium build'), - ('haketilo-1.0b1.xpi', 'Mozilla build'), - ('haketilo-1.0b1.tar.gz', 'source code') + ('haketilo-1.0b1.zip', chromium_build_note), + ('haketilo-1.0b1.xpi', mozilla_build_note), + ('haketilo-1.0b1.tar.gz', source_code_note) ]) }} {% endcall %} diff --git a/src/hydrilla_website/templates/index.html.jinja b/src/hydrilla_website/templates/index.html.jinja index 955c06f..642c833 100644 --- a/src/hydrilla_website/templates/index.html.jinja +++ b/src/hydrilla_website/templates/index.html.jinja @@ -32,6 +32,8 @@ code in a proprietary work, I am not going to enforce this in court. max-width: 100%; margin: auto; } + + . {% endblock %} {% set here_url = url_for('main') %} @@ -39,12 +41,20 @@ code in a proprietary work, I am not going to enforce this in court. {% set nav_links_data = [ - ('', here_url ~ '#', 'Home'), - ('about', here_url ~ '#about', 'About'), - ('manual', here_url ~ '#manual', 'Manual'), - (none, url_for('downloads') ~ '#', 'Downloads'), - ('get-involved', here_url ~ '#get-involved', 'Get involved'), - (none, site_git_url, 'Website sources') + ('', here_url ~ '#', + _('index.nav.home')), + ('about', here_url ~ '#about', + _('index.nav.about')), + ('manual', here_url ~ '#manual', + _('index.nav.manual')), + (none, url_for('downloads') ~ '#', + _('index.nav.downloads')), + ('get-involved', here_url ~ '#get-involved', + _('index.nav.get_involved')), + ('langs', here_url ~ '#langs', + _('index.nav.languages')), + (none, site_git_url, + _('index.nav.site_sources')) ] %} @@ -58,137 +68,121 @@ code in a proprietary work, I am not going to enforce this in court. {% endcall %} {% call subpage('about') %} -

About

+

+ {{ _('index.h_big.about') }} +

- Haketilo is a tool that facilitates viewing websites with their original - JavaScript replaced - by user-provided scripts. - It combines the functionalities of content - blocker and user script manager. - It can be used with its script repository, Hydrilla. + {{ _('index.about.html.haketilo_is_a_tool')|safe }}

- One of Haketilo's aims is to address the issues raised in - "The JavaScript trap". - It is being developed with hope that it will make more user-controlled - "Web" browsing possible. + {{ _('index.about.html.haketilo_javascript_trap')|safe }}

- Haketilo is a - free/libre software, - SSl-enabled HTTP proxy. As such, it can be used with multiple web - browsers, regardless of their native support for some particular addon - format. + {{ _('index.about.html.haketilo_is_libre_proxy')|safe }}

- A browser extension variant of Haketilo also exists and is compatible with - Firefox- and - Chromium-based - browsers that support the Manifest V2 WebExtension format. The browser - extension is currently in maintenance mode and does not receive new - features. + {{ _('index.about.html.haketilo_extension_variant')|safe }}

-

Available packages

+

{{ _('index.about.h_medium.available_packages') }}

- Haketilo can be used both for simple script-blocking and for altering the - ways websites are viewed. Its official Hydrilla repository provides a - collection of - freely-licensed - packages that can make several websites viewable again after their - original JavaScript is blocked from executing. + {{ _('index.about.available_packages.html')|safe }}

-

Credits

+

{{ _('index.about.h_medium.credits') }}

- Those who knowingly or unknowingly helped the project in some way, receive - special thanks. +

+ {{ _('index.about.credits.special_thanks_to') }} +

{% call unordered_list() %} {% call list_entry() %} - the NLnet Foundation with the - NGI0 Programme for funding the - development of Haketilo in 2021 and 2022 + {{ _('index.about.credits.list_entry.html.nlnet')|safe }} {% endcall %} {% call list_entry() %} - Jahoti for contributions in - the early stages of Haketilo browser extension + {{ _('index.about.credits.list_entry.html.jahoti')|safe }} {% endcall %} {% call list_entry() %} - Nicholas Johnson for preparing a - presentation about Haketilo - for LibrePlanet 2022 + {{ _('index.about.credits.list_entry.html.nick')|safe }} {% endcall %} {% call list_entry() %} - David Lyons for - his Hatchet graphic that is being used in Haketilo + {{ _('index.about.credits.list_entry.html.david_lyons')|safe }} {% endcall %} {% call list_entry() %} - the creators of mitmproxy which - serves as a base for Haketilo proxy + {{ _('index.about.credits.list_entry.html.mitmproxy')|safe }} {% endcall %} {% call list_entry() %} - the the Pallets Projects for - creating Flask and other tools that are used extensively in this very - website as well as in Haketilo&Hydrilla + {{ _('index.about.credits.list_entry.html.pallets')|safe }} {% endcall %} {% endcall %} {% endcall %} {% call subpage('manual') %} -

User manual

+

{{ _('index.h_big.user_manual') }}

- Information about installation, running and some technical aspects of - Haketilo operation can be found on - project's Redmine-powered wiki. - Additional help is provided by Haketilo proxy's builtin documentation - which can be viewed from the tool itself. + {{ _('index.user_manual.html.haketilo_wiki_and_inline_doc')|safe }}

- The documentation of Hydrilla repository server for use with Haketilo can - be found on - on project's wiki. + {{ _('index.user_manual.html.hydrilla_wiki')|safe }}

{% endcall %} {% call subpage('get-involved') %} -

Get involved

+

{{ _('index.h_big.get_involved') }}

- Haketilo development currently occurs on - project's Redmine instance. - Individuals and groups are more than welcome to + {{ _('index.get_involved.html.project_redmine_instance')|safe }}

{% call unordered_list() %} {% call list_entry() %} - provide feedback and suggestions, + {{ _('index.get_involved.list_entry.provide_feedback') }} {% endcall %} {% call list_entry() %} - make bug reports, + {{ _('index.get_involved.list_entry.report_bugs') }} {% endcall %} {% call list_entry() %} - share custom scripts for websites, + {{ _('index.get_involved.list_entry.share_custom_scripts') }} {% endcall %} {% call list_entry() %} - provide translations and + {{ _('index.get_involved.list_entry.provide_translations') }} {% endcall %} {% call list_entry() %} - contribute code to Haketilo and Hydrilla. + {{ _('index.get_involved.list_entry.contribute_code') }} {% endcall %} {% endcall %}

- One can also email the maintainer of Haketilo, - Wojtek Kosior, directly - at koszko@koszko.org. + {{ _('index.get_involved.html.email_maintainer')|safe }}

{% endcall %} + + {% call subpage('langs') %} +

{{ _('index.h_big.choose_language') }}

+ + {% call unordered_list() %} + {% set action_url = url_for('set_locale') %} + {% + for lang_name, lang_code in [ + ('english', 'en_US'), + ('polski', 'pl_PL') + ] + %} + {% call list_entry() %} +
+ {% set value = locale_serializer.dumps(lang_code) %} + + +
+ {% endcall %} + {% endfor %} + {% endcall %} + {% endcall %} {% endblock %} -- cgit v1.2.3